按鍵對字典排序:取得有序集合
Python 字典的本質是無序的,除非引入 Python 3.7。雖然對(鍵,值)對進行排序可能會作為解決方案,但重要的是要承認,在將元素儲存回字典時保留排序順序是不可行的。
無縫地建立基於鍵值,使用 OrderedDict 類別是最佳方法。這類具有保留其元素插入順序的獨特能力:
import collections d = {2: 3, 1: 89, 4: 5, 3: 0} # Construct an OrderedDict from sorted key-value pairs od = collections.OrderedDict(sorted(d.items())) print(od) # OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
儘管od 的列印表示可能有所不同,但它將在後續互動過程中保持所需的順序:
print(od[1]) # 89 print(od[3]) # 0 for k, v in od.items(): print(k, v) # 1 89, 2 3, 3 0, 4 5
Python 3 使用者的注意事項
Python 3 使用者應該使用迭代OrderedDict 時使用 .items() 方法而不是 .iteritems() 來保持相容性:
for k, v in od.items(): print(k, v) # 1 89, 2 3, 3 0, 4 5
以上是如何從 Python 字典創建有序的集合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!