python中字典dict排序sorted的实现
作者:panbaoran913
本文主要介绍了python中字典dict排序sorted的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
key | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
value | 25 | 20 | 15 | 10 | 5 | 30 |
字典P={1:10,2:25,3:5,4:15,5:20,6:30}
有以下3种迭代器:
P.items()
dict_items([(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)])
P.keys()
dict_keys([1, 2, 3, 4, 5, 6])
P.valuse()
dict_values([10, 25, 5, 15, 20, 30])
一、sorted使用
基本用法
list = sorted(iterable, key=None, reverse=False) a = [5,3,4,2,1] print(sorted(a))#[1,2,3,4,5]
- key是排序的关键字
- reverse是升序还是降序,默认False为升序
二、按照keys的顺序对dict中的keys排序
这里忽略dict中的values的存在,直接使用迭代器P.keys()排序即可,类似与list的排序
sorted(P.keys())
三、按照valuse的顺序对dict中的values排序
这里忽略dict中的keys的存在,直接使用迭代器P.valuse()排序即可,类似与list的排序.
sorted(P.valuse())
四、按照keys的顺序对dict中的items排序
sorted(P.items(),key=lambda item:item[0]) # [(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)]
P.iems()是一个迭代器,其中每个元素以元组(1,10),(2,25),…的形式.lambda
中tiem表示迭代器中的每个具体的元素,所以item[0]会表示原dict中的keys值.sorted中的key值是选择了dict中的keys作为排序的准则.
或者,上面是一种理解的形式,下面的一种对sorted对dict的默认形式.本质上是一种.
sorted(P.items()) #[(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)]
五、按照values的顺序对dict中的items排序
sorted(P.items(),key=lambda item:item[1]) # [(3, 5), (1, 10), (4, 15), (5, 20), (2, 25), (6, 30)]
理解同上
六、按照keys的顺序对dict的values排序
P1=sorted(P.items(),key=lambda item:item[0]) #[(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)] P2=[a[1] for a in P1] # [10, 25, 5, 15, 20, 30]
或者
P2=[a[1] for a in sorted(P.items()]) ]
七、按照values的顺序对dict中的keys排序
P1=sorted(P.items(),key=lambda item:item[1] # [(3, 5), (1, 10), (4, 15), (5, 20), (2, 25), (6, 30)] P2=[a[0] for a in P1] # [3, 1, 4, 5, 2, 6]
八、字典的先进先出
OrderedDict 是 按照有序插入顺序存储 的有序字典。
from collections import OrderedDict
增加方法: popitem(last=True)
移除并返回一个键值对,last=True 时,后进先出,反之,先进先出。
move_to_end(key, last=True)
last=True时,将键值对移至最右。反之,移至最左。key不存在时,抛错 KeyError。
到此这篇关于python中字典dict排序sorted的实现的文章就介绍到这了,更多相关python字典dict排序sorted内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!