1. 程式人生 > >python對字典按照 key 或者 value 進行排序

python對字典按照 key 或者 value 進行排序

假設 有字典tmp={1:4,2:3}

需要知道的

tmp.keys()

返回的是詞典的keyde 迭代物件,注意不是list 其返回的是一個dict_keys object

>>> tmp={1:4,2:3}
>>> tmp.keys()
dict_keys([1, 2])
>>> l=tmp.keys()
>>> l[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError:
'dict_keys' object does not support indexing >>> for key in l: ... print(key) ... 1 2 >>>

tmp.items()

返回的是元組(key,value)的迭代物件(dict_items’ object) ,其中每個元組是和字典的元素一一對應的,注意不是list

>>> tmp={1:4,2:3}
>>> tmp.items()
dict_items([(1, 4), (2, 3)])
>>> l=
tmp.items() >>> l[0] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'dict_items' object does not support indexing >>> for item in l: ... print(item) ... (1, 4) (2, 3) >>>

sorted

1.sorted函式按key值對字典排序

sorted(iterable,
key,reverse)
引數。

iterable:表示可以迭代的物件,例如可以是dict.items()、dict.keys()等
key:是一個函式,用來選取參與比較的元素
reverse:則是用來指定排序是倒序還是順序,reverse=true則是倒序(從大到小), reverse=false 時則是順序(從小到大),預設時reverse=false。

sorted函對字典進行排序

按照key 進行排序

注意 裡面包括保留value 和 不保留 value的區別 還有排序的模式

>>> tmp={1:4,2:3}
>>> tem_sort=sorted(tmp.keys())
>>> tem_sort
[1, 2]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[0])
>>> tem_sort
[(1, 4), (2, 3)]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[0],reverse=True)
>>> tem_sort
[(2, 3), (1, 4)]

按照 進行排序

要注意 lambda item:item[1]

>>> tmp={1:4,2:3}
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[1],reverse=True)
>>> tem_sort
[(1, 4), (2, 3)]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[1])
>>> tem_sort
[(2, 3), (1, 4)]