文章目录
- 一、sorted使用
- 二、按照`keys`的顺序对dict中的`keys`排序
- 三、按照`valuse`的顺序对dict中的`values`排序
- 四、按照`keys`的顺序对dict中的`items`排序
- 五、按照`values`的顺序对dict中的`items`排序
- 六、按照`keys`的顺序对dict的`values`排序
- 七、按照`values`的顺序对dict中的`keys`排序
- 八、字典的先进先出
- 增加方法:
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。