python有序遍歷dict(字典)
阿新 • • 發佈:2018-12-09
大家都知道dict是無序的,這篇文章介紹dict的有序遍歷。這裡我們主要用到一個python的方法sorted()。
一,sorted()方法介紹:內建函式sorted方法,可以對所有可迭代的物件進行排序操作。
1,方法-sorted(iterable, key=None, reverse=False):
- iterable,可以看到其中第一個引數是可迭代物件;
- key,主要是用來進行比較的元素,只有一個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的一個元素來進行排序;
- reverse,是否反轉,預設情況下不反轉;
2,sorted()的理解,對list的排序為例:
def test_sorted():
L = [('b', 2), ('a', 1), ('c', 3), ('d', 0)]
print(sorted(L,key=lambda x:x[0])) # 用第一項排序
print(sorted(L,key=lambda x:x[1])) # 用第二項排序
test_sorted()
輸出:
[('a', 1), ('b', 2), ('c', 3), ('d', 0)]
[('d', 0), ('a', 1), ('b', 2), ('c', 3)]
二、dict按key有序遍歷:
def sort_by_key(dic) :
for key in sorted(dic):
print(key,dic[key])
dic = {1:2,4:2,6:1,0:5}
sort_by_key(dic)
輸出:
0 5
1 2
4 2
6 1
三、dict按value有序遍歷:
def sort_by_value(dic):
for key,value in sorted(dic.items(),key=lambda x:x[1]):
print(key,value)
dic = {1:2,4:2,6:1,0:5}
sort_by_value(dic)
輸出:
6 1
1 2
4 2
0 5