Python中實現字典的排序
阿新 • • 發佈:2019-01-26
我們都知道,字典是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)]