【Python高级用法总结-字典排序】志不强者智不达,言不信者行不果。这篇文章主要讲述Python高级用法总结-字典排序相关的知识,希望能为你提供帮助。
一、字典默认排序
python的字典类型是无序的、无法排序的,但是当有排序需求时,大家可以把字典转化成列表,把字典中的每一个键-值对,转化为嵌入到列表中的两位元组,然后再进行列表排序等操作。
scoreDict={"li":82,"chen":96,"wei":100,"mai":73}
scoreList=list(scoreDict.items())
scoreList.sort()
print(scoreList)
Python结果如下:
文章图片
由上图结果可见,通过将字典转换为列表,并使用sort()实现了对字典的默认排序。
二、字典按任意指定元素排序
大家都知道,字典是键-值对,上面排序使用的sort()方法,如果不写任何参数,默认按照键的顺序排序,如果想按照值的顺序进行排序呢?sort()方法可以接受关键字为key的参数。我们可以通过将key指定为一个特殊的lambda表达式,从而可以任意指定用于排序的元素,如大家可以让字典内容按值的大小排序,实现方法如下:
scoreDict={"li":82,"chen":96,"wei":100,"mai":73}
scoreList=list(scoreDict.items())
scoreList.sort(key=lambda items: items[1])
print(scoreList)
Python结果如下:
文章图片
由上图结果可见,通过使用lambda表达式,实现了对字典的按任意指定元素排序。
三、字典深层排序
什么是深层排序呢,如一个带有深层键的Python字典:
sourceDict={"ma":{"a":9},"li":{"a":3},"bo":{"a":5}}
它的每个元素是一个字典(dict)嵌套了一个字典(dict),如果要对字典按照最里面的字典的值(value)进行排序,即将字典的元素按照最深层字典(dict)的键(key =\'a\')所对应值(value)的大小进行排序,该怎么实现呢?
这里同样用到了Python特有的lambda表达式,实现方法如下:
sourceDict={"ma":{"a":9},"li":{"a":3},"bo":{"a":5}}
sourceList = list(sourceDict.items())
print(sorted(sourceList, key = lambda x :x[1][\'a\']))
Python结果如下:
文章图片
如上图所示,完美解决了字典的深层排序问题!
推荐阅读
- 教你用OpenCV 和 Python实现圆物检测
- 教你用OpenCV 和 Python给证件照换底色(蓝底 <-;红底-;白底)
- 0元学Scratch趣味编程第二课(绘制等边三角形(附送8例Scratch基础编程带注释源代码))
- 眼见为实,看看MySQL中的隐藏列!
- nginx端口转发&负载均衡
- 听说原型是UI的工作,我要暴走了…
- 如何优雅地实现分页查询
- rf安装之rf应用
- 万字干货OpenMetric与时序数据库存储模型分析