本文实例讲述了Python实现字典排序、按照list中字典的某个key排序的方法。分享给大家供大家参考,具体如下:
1.给字典按照value按照从大到小排序
排序
dict = {\'a\':21, \'b\':5, \'c\':3, \'d\':54, \'e\':74, \'f\':0}
new_dict = sorted(dict.iteritems(), key=lambda d:d[1], reverse = True)
print new_dict
输出:
[(\'e\', 74), (\'d\', 54), (\'a\', 21), (\'b\', 5), (\'c\', 3), (\'f\', 0)]
2. python按照list中的字典的某key排序:
例子:
s=[
{\"no\":28,\"score\":90},
{\"no\":25,\"score\":90},
{\"no\":1,\"score\":100},
{\"no\":2,\"score\":20},
]
print \"original s: \",s
# 单级排序,仅按照score排序
new_s = sorted(s,key = lambda e:e.__getitem__(\'score\'))
print \"new s: \", new_s
# 多级排序,先按照score,再按照no排序
new_s_2 = sorted(new_s,key = lambda e:(e.__getitem__(\'score\'),e.__getitem__(\'no\')))
print \"new_s_2: \", new_s_2
输出:
original s: [{\'score\': 90, \'no\': 28}, {\'score\': 90, \'no\': 25}, {\'score\': 100, \'no\': 1}, {\'score\': 20, \'no\': 2}]
new s: [{\'score\': 20, \'no\': 2}, {\'score\': 90, \'no\': 28}, {\'score\': 90, \'no\': 25}, {\'score\': 100, \'no\': 1}]
new_s_2: [{\'score\': 20, \'no\': 2}, {\'score\': 90, \'no\': 25}, {\'score\': 90, \'no\': 28}, {\'score\': 100, \'no\': 1}]
说明
1.new_s和new_s2的区别在于当score均为90的时候,重新按照no排序
2.顺序为从小到大,若在sorted函数的参数加上reverse = True则为从大到小
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
继续阅读与本文标签相同的文章
微信小程序解除10个请求并发限制
-
《Android高性能编程》| 每日读本书
2026-05-18栏目: 教程
-
上海市增值税发票管理系统25日停机前需完成以下事项
2026-05-18栏目: 教程
-
设计建设网站前,网站安全整体解决方案全解析!
2026-05-18栏目: 教程
-
三年从业经验且非科班出身的中年Java程序员如何保持岗位竞争力
2026-05-18栏目: 教程
-
谷歌放弃Daydream移动VR平台 因未达到使用预期
2026-05-18栏目: 教程
