問題描述
你想創建一個字典,并且在迭代或序列化這個字典時能夠控制元素的順序,
解決方案
這里介紹一種新的容器:collections模塊中的OrderedDict類,它的用法如下:
from collections import OrderedDict
d = OrderedDict()
d['a'] = 1
d['b'] = 2
d['c'] = 3
討論
有序詞典就像常規詞典一樣,但有一些與排序操作相關的額外功能,由于內置的 dict 類獲得了記住插入順序的能力(在 Python 3.7 中保證了這種新行為),它們變得不那么重要了,
OrderedDict內部維護著一個根據鍵插入順序排序的雙向串列,每次當一個新的元素插入進來的時候,它會被放到鏈表的尾部,對于一個已經存在的鍵進行重復賦值不會改變鍵的順序,也正因如此,一個OrderedDict的大小時普通字典的兩倍,所以如果需要構建一個需要大量OrderedDict實體的資料結構時,要權衡其帶來的好處是否大過記憶體的額外消耗,
關于OrderedDict更詳細的介紹和用法,參見官方檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/386459.html
標籤:Python
上一篇:1.6 字典中的鍵映射多個值
