1. 程式人生 > >python有序遍歷dict(字典)

python有序遍歷dict(字典)

大家都知道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