下面的排序都將使用sorted()
函數(shù)
sorted()
函數(shù)是python
內(nèi)置的函數(shù)徐许,對(duì)所有可迭代的對(duì)象都可以實(shí)現(xiàn)排序操作吩蔑。
當(dāng)sorted()
函數(shù)中的可迭代對(duì)象參數(shù)傳入的是一個(gè)字典對(duì)象,排序的結(jié)果是由字典的key
值決定的校辩。
根據(jù)字典的鍵(key)排序
直接使用sorted()
函數(shù)
>>> dict_t = {
"esc": 1,
"apple": 5,
"dd": 4,
"pass": 2,
"quit": 3
}
>>> sorted(dict_t)
['apple', 'dd', 'esc', 'pass', 'quit']
所以不要直接給原字典直接賦值sorted(dict_name)
窘问,因?yàn)楹瘮?shù)返回的是排序好的鍵名組成的一個(gè)列表。
再通過(guò)返回的列表來(lái)遍歷字典:
>>> 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
根據(jù)字典的值(value)排序
使用字典內(nèi)置方法items
返回元組對(duì)宜咒,設(shè)定sorted()
函數(shù)的參數(shù)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)]
倒序排序時(shí)設(shè)置sorted()
函數(shù)的reverse
參數(shù)為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)]