0
点赞
收藏
分享

微信扫一扫

Python有序字典以及字典排序

本文参考菜鸟教程 :https://www.runoob.com/python3/python-sort-dictionaries-by-key-or-value.html

1. 字典排序

初始化

>>> d = {'a':1, 'b':0, 'd':-1,'f':2}

按键排序

>>> for i in sorted(d):
... print(i, d[i])
...
a 1
b 0
d -1
f 2
>>> l = sorted(d.items(), key = lambda kv:(kv[0], kv[1]))
>>> l
[('a', 1), ('b', 0), ('d', -1), ('f', 2)]

按值排序

>>> l = sorted(d.items(), key = lambda kv:(kv[1], kv[0]))
>>> print(l)
[('d', -1), ('b', 0), ('a', 1), ('f', 2)]

2. 字典列表排序

初始化

>>> lis = [{ "name" : "Taobao", "age" : 100},
... { "name" : "Runoob", "age" : 7 },
... { "name" : "Google", "age" : 100 },
... { "name" : "Wiki" , "age" : 200 }]

列表排序

# age 升序
>>> print (sorted(lis, key = lambda i: i['age']))
[{'age': 7, 'name': 'Runoob'}, {'age': 100, 'name': 'Taobao'}, {'age': 100, 'name': 'Google'}, {'age': 200, 'name': 'Wiki'}]
# 先 age,后 name
>>> print (sorted(lis, key = lambda i: (i['age'], i['name'])))
[{'age': 7, 'name': 'Runoob'}, {'age': 100, 'name': 'Google'}, {'age': 100, 'name': 'Taobao'}, {'age': 200, 'name': 'Wiki'}]

3. Python 有序字典

import collections
d = collections.OrderedDict()
d['a'] = 1
d['b'] = 2


举报

相关推荐

0 条评论