Python對字典中的鍵值排序
阿新 • • 發佈:2019-02-08
字典是Python的另一種有序的可變資料結構,且可儲存任意型別物件。字典是一種鍵值對的資料容器,每個鍵值(key:value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號“{}”中。鍵和值兩者一一對應,與表不同的是,詞典的元素沒有順序,不能通過下標引用元素。字典是通過鍵來引用。
字典中的鍵必須是唯一的同時不可變的,值則沒有限制。但其中的鍵:值的關係是hash,所以鍵打印出來其實是無序的。
>>> D = {'a': 97, 'b': 98, 'c': 99, 'd': 100} >>> for key in D: ... print key, '==>', D[key] ... a ==> 97 c ==> 99 b ==> 98 d ==> 100 >>>
實際上有不少需求,鍵要求是有序輸出,或有序來處理,這個時候就需要使用sorted()等方式按鍵來排序:
>>> D = {'a': 97, 'b': 98, 'c': 99, 'd': 100}
>>> for key in sorted(D):
... print key, '==>', D[key]
...
a ==> 97
b ==> 98
c ==> 99
d ==> 100
或者先將鍵來排序
>>> D = {'a': 97, 'b': 98, 'c': 99, 'd': 100} >>> keys = list(D.keys()) >>> keys.sort() >>> keys ['a', 'b', 'c', 'd'] >>> for key in keys: ... print key,'==>', D[key] ... a ==> 97 b ==> 98 c ==> 99 d ==> 100 >>>
或者使用sorted()
>>> D = {'a': 97, 'b': 98, 'c': 99, 'd': 100}
>>> keys = sorted(D.keys())
>>> keys
['a', 'b', 'c', 'd']
>>> for key in keys:
... print key,'==>',D[key]
...
a ==> 97
b ==> 98
c ==> 99
d ==> 100
>>>
上面的操作在實際上還是挺有用的。