python复合条件下的字典排序

  • Post category:Python

在Python中,可以使用sorted()函数对字典进行排序。但是在字典排序时,需要注意复合条件排序。下面是python复合条件下字典排序的攻略:

1.使用lambda函数排序

可以使用lambda函数对字典进行指定键的排序。下面是根据字典中 value 的大小排序的示例:

# 定义一个字典
data = {'a': 3, 'b': 1, 'c': 2}

# 根据字典value大小排序
sorted_data = sorted(data.items(), key=lambda x:x[1])

# 打印排序结果
print(sorted_data)

解释: lambda函数中的x代表data字典的每一项键值对,[1]为排序的依据,即根据字典value的大小进行排序。

输出结果为:

[('b', 1), ('c', 2), ('a', 3)]

2.使用多个条件排序

同样可以通过lambda函数实现多条件排序,以根据字典中 value 大小和 key 大小排序为例:

# 定义一个字典
data = {'b': 1, 'c': 2, 'a': 3, 'd': 2}

# 根据字典value大小和key大小排序
sorted_data = sorted(data.items(), key=lambda x: (x[1], x[0]))

# 打印排序结果
print(sorted_data)

解释: lambda函数中的x代表data字典的每一项键值对,(x[1], x[0])为排序的依据,先根据value大小升序排序,如果value相同,在根据key大小升序排序。注意,元组中逗号的存在,如果没有逗号,元组化生成的就不是一个元组,就会报错。

输出结果为:

[('b', 1), ('c', 2), ('d', 2), ('a', 3)]

以上就是python复合条件下字典排序的攻略,有关 sorted() 函数的基础使用,可以查看Markdown编辑器里的Markdown教学文档,里面有相关内容的讲解。