Python高级用法总结-字典排序

【Python高级用法总结-字典排序】志不强者智不达,言不信者行不果。这篇文章主要讲述Python高级用法总结-字典排序相关的知识,希望能为你提供帮助。
一、字典默认排序

python的字典类型是无序的、无法排序的,但是当有排序需求时,大家可以把字典转化成列表,把字典中的每一个键-值对,转化为嵌入到列表中的两位元组,然后再进行列表排序等操作。

scoreDict={"li":82,"chen":96,"wei":100,"mai":73}scoreList=list(scoreDict.items())scoreList.sort()print(scoreList)

Python结果如下:
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结果如下:
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结果如下:
Python高级用法总结-字典排序

文章图片

如上图所示,完美解决了字典的深层排序问题!


    推荐阅读