我們要創建壹個字典,同時在叠代或者序列化字典的時候,也可以控制裏面元素的順序。2.解決方法
若要控制字典中元素的順序,可以使用collections模塊中的OrderedDict類。當遍歷字典時,將嚴格按照最初添加元素的順序進行。
從集合導入訂單直接
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
#根據插入刪除輸出
對於d中的鍵:
Print(key,d[key])結果:
1
b 2
c 3
當您希望構建壹個映射結構,以便以後將其序列化或編碼為另壹種格式時,D 4 OrderedDict特別有用。例如,如果您想在對JSON進行編碼時精確地控制字段的順序,您只需要首先按照OrderedDict構建數據:
從集合導入訂單直接
導入json
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
j=json.dumps(d)
打印(j)結果:
{"a": 1," b": 2," c": 3," d": 4}有序Dict維護壹個雙向鏈表,按照元素添加的順序排列鍵的位置。第壹個新添加的元素放在鏈表的末尾,然後重新分配現有的鍵,而不改變鍵的位置。請註意:OrderedDict的大小是普通字典的兩倍。這是因為它創建了額外的鏈表。因此,如果您計劃構建壹個涉及大量OrderedDict實例的數據結構(例如,從壹個CSV文件中讀取100 000行到OrderedDict列表中),您需要對應用程序的需求進行認證和分析,以判斷使用OrderedDict帶來的好處是否能夠超過額外的內存開銷帶來的壞處。