下面的排序都将使用sorted()
函数
sorted()
函数是python
内置的函数,对所有可迭代的对象都可以实现排序操作。
当sorted()
函数中的可迭代对象参数传入的是一个字典对象,排序的结果是由字典的key
值决定的。
根据字典的键(key)排序
直接使用sorted()
函数
>>> dict_t = {
"esc": 1,
"apple": 5,
"dd": 4,
"pass": 2,
"quit": 3
}
>>> sorted(dict_t)
['apple', 'dd', 'esc', 'pass', 'quit']
所以不要直接给原字典直接赋值sorted(dict_name)
,因为函数返回的是排序好的键名组成的一个列表。
再通过返回的列表来遍历字典:
>>> dict_t = {
"esc": 1,
"apple": 5,
"dd": 4,
"pass": 2,
"quit": 3
}
>>> for each in sorted(dict_t):
print(each, dict_t[each])
apple 5
dd 4
esc 1
pass 2
quit 3
根据字典的值(value)排序
使用字典内置方法items
返回元组对,设定sorted()
函数的参数key
。
>>> dict_t = {
"esc": 1,
"apple": 5,
"dd": 4,
"pass": 2,
"quit": 3
}
>>> sorted(dict_t.items(), key=lambda dict_t:dict_t[1])
[('esc', 1), ('pass', 2), ('quit', 3), ('dd', 4), ('apple', 5)]
倒序排序时设置sorted()
函数的reverse
参数为True
。
>>> dict_t = {
"esc": 1,
"apple": 5,
"dd": 4,
"pass": 2,
"quit": 3
}
>>> sorted(dict_t.items(), key=lambda dict_t:dict_t[1], reverse=True)
[('apple', 5), ('dd', 4), ('quit', 3), ('pass', 2), ('esc', 1)]