在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教学文档,里面有相关内容的讲解。