1. 程式人生 > >Python中實現字典的排序

Python中實現字典的排序

我們都知道,字典是hash演算法,是無序顯示的。 如果要使字典按建立順序,或者按Key鍵的ASCII順序,或者按Value值的順序來排列,可以用以下兩種方法。 

方法一: 使用collections模組的OrderedDict方法

>>> dict_1 = {}                          # 自然定義的字典1
>>> dict_1["x"] = 1                      # 按'x', 'y', 'z'鍵的順序依次賦值
>>> dict_1["y"] = 2
>>> dict_1["z"] = 3
>>> dict_1                               # 由於hash的無序性,顯示的確是'y'開頭
{'y': 2, 'x': 1, 'z': 3}
>>> from collections import OrderedDict  # 匯入collections.OrderedDict
>>> dict_2 = OrderedDict()               # 將字典2定義成有序字典
>>> dict_2["x"] = 1                      # 分別對字典2按順序賦值
>>> dict_2["y"] = 2
>>> dict_2["z"] = 3
>>> dict_2                               # 最後按建立時的順序顯示
OrderedDict([('x', 1), ('y', 2), ('z', 3)])
>>>

方法二:  使用sorted來對字典來排序

>>> dict_3 = {"Alice": 15, "Jerry": 35, "Wendy": 25} 
>>> sorted(dict_3.items(), key=lambda item: item[0])   # 按鍵的順序來排序
[('Alice', 15), ('Jerry', 35), ('Wendy', 25)]
>>> sorted(dict_3.items(), key=lambda item: item[1])   # 按值的順序來排序
[('Alice', 15), ('Wendy', 25), ('Jerry', 35)]