1. 程式人生 > >Python對字典中的鍵值排序

Python對字典中的鍵值排序

字典是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
>>>
上面的操作在實際上還是挺有用的。