建立字典物件,同時儲存鍵值對的插入順序時,可以使用collections包提供的ordereddict物件。和預設的dict字典物件相比,ordereddict提供了額外的能力來儲存字典元素的插入順序。
當您想要構建乙個您可能希望稍後序列化或編碼為不同格式的對映時,ordereddict特別有用。 例如,如果要精確控制json編碼**現的字段的順序,首先在ordereddict中構建資料將起到作用:
from collections import ordereddict
import json
d = ordereddict()
d['foo'] = 1
d['bar'] = 2
d['spam'] = 3
d['grok'] = 4
# outputs "foo 1", "bar 2", "spam 3", "grok 4"
for key in d:
print(key, d[key])
>>> json.dumps(d)
''
ordereddict內部維護乙個雙向鍊錶,根據插入順序對鍵進行排序。 首次插入新專案時,它將放在此列表的末尾。 後續重新對相應的鍵進行賦值時,不會更改字典的插入順序。
注意,由於建立了額外的鍊錶,ordereddict的大小是dict的兩倍多。 因此,如果要構建涉及大量ordereddict例項的資料結構(例如,將100,000行csv檔案讀入ordereddict例項列表),則需要研究應用程式的要求以確定,使用ordereddict的好處是否超過了額外的記憶體開銷。
和常規的dict資料型別相比:
Python3 OrderedDict(有序字典)
python3 中提供得ordereddict類,即有序字典,與dict得區別就是ordereddict有序的儲存數鍵值對。from collections import ordereddict 建立ordereddict info ordereddict info 張三 19 info 李四 20...
普通字典和OrderedDict的區別python
普通字典是無序的 也就是不會按放入元素的先後順序排序 d d a a d b b d c c for k,v in d.items print k,v a a b b c c print ordereddict,實現了對字典物件中元素的排序 使用ordereddict會根據放入元素的先後順序進行排序...
預設字典,有序字典
第乙個引數是default factory,預設是none,它提供乙個初始化函式.當key不存在的時候,會呼叫這個工廠函式來生成key對應的value d for i in abcdef for j in range 3 if i not in d d i print d from collecti...