python对dict,list排序(sort,sorted)

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)及自定义排序


参考:

  1. sort dict by value python [duplicate];
发布了510 篇原创文章 · 获赞 152 · 访问量 77万+

猜你喜欢

转载自blog.csdn.net/rosefun96/article/details/104889166