Python高级用法总结-字典排序
Posted wx614070971eedb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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结果如下:
如上图所示,完美解决了字典的深层排序问题!
以上是关于Python高级用法总结-字典排序的主要内容,如果未能解决你的问题,请参考以下文章