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结果如下:

\'Python高级用法总结(6)-字典排序_元组\'

由上图结果可见,通过将字典转换为列表,并使用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高级用法总结(6)-字典排序_lambda表达式_02\'

由上图结果可见,通过使用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高级用法总结(6)-字典排序_元组_03\'

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

 

以上是关于Python高级用法总结-字典排序的主要内容,如果未能解决你的问题,请参考以下文章

Python高级用法------字典无需提前定义key

Python高级用法总结

Python sorted 函数用法

python3 字典常见用法总结

掌握这9个单行代码技巧!你也能写出『高端』Python代码 ⛵

python sort()用法