1. dict排序
- 根据
key
排序
dict = {'apple': 2, 'pine':10, 'pear':10,'other':12}
print(sorted(dict.items(), key=lambda d: d[0]))
# 反序
print(sorted(dict.items(), key=lambda d: d[0],reverse=True))
结果:
[('apple', 2), ('other', 12), ('pear', 10), ('pine', 10)]
[('pine', 10), ('pear', 10), ('other', 12), ('apple', 2)]
- 根据
value
排序
一种对tuple进行排序,一种直接对普通值排序。
# 方法1
print(sorted(dict.items(), key=lambda d: d[1]))
print(sorted(dict.items(), key=lambda d: d[1],reverse=True))
# 方法2
print(sorted(dict, key=dict.get))
print(sorted(dict, key=dict.get,reverse=True))
运行结果:
[('apple', 2), ('pine', 10), ('pear', 10), ('other', 12)]
[('other', 12), ('pine', 10), ('pear', 10), ('apple', 2)]
['apple', 'pine', 'pear', 'other']
['other', 'pine', 'pear', 'apple']
- 同时对
key
,value
进行排序
先根据 key ,key 相同时根据 value;或者先根据 value,value相同根据 key.
print(sorted(dict.items(), key=lambda d: (d[0],d[1])))
print(sorted(dict.items(), key=lambda d: (d[1],d[0])))
运行结果:
[('apple', 2), ('other', 12), ('pear', 10), ('pine', 10)]
[('apple', 2), ('pear', 10), ('pine', 10), ('other', 12)]
2. list排序
python对两个关联list排序(sort,sorted)及自定义排序
参考: