首頁  >  文章  >  後端開發  >  python如何讓字典保持有序(程式碼)

python如何讓字典保持有序(程式碼)

不言
不言轉載
2018-10-11 14:24:563128瀏覽

這篇文章帶給大家的內容是關於python如何讓字典保持有序(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、需求

我們想建立一個字典,同時當對字典做迭代或序列化操作時,也能控制其中元素的順序。

2、解決方案

要控製字典中元素的順序,可以使用collections模組中的OrderedDict類別。當字典做迭代時,它會嚴格按照元素初始添加的順序進行。

from collections import OrderedDict
d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
#根据插入删除输出
for key in d:
print(key,d[key])

結果:

a 1
b 2
c 3
d 4

當想要建立一個映射結構以便稍後對其做序列化或編碼成另一種格式時,OrderedDict就顯得特別有用。例如:如果想在進行JSON編碼時精確控制各字段的順序,那麼只要先在OrderedDict中建立資料就可以了:

from collections import OrderedDict
import json

d=OrderedDict()
d['a']=1
d['b']=2
d['c']=3
d['d']=4
j=json.dumps(d)
print(j)

結果:

{"a": 1, "b": 2, "c": 3, "d": 4}
OrderedDict內部維護了一個雙向鍊錶,它會根據元素加入的順序來排列鍵的位置。第一個新加入的元素被放置在鍊錶的結尾,接下來對已存在的鍵做重新賦值,不會改變鍵的位置。

請注意:OrderedDict的大小是普通字典的2倍。這是由於它額外創建的鍊錶所致。因此,如果打算建構一個涉及大量OrderedDict實例的資料結構(例如從CSV檔案讀取100 000行行內容到OrderedDict清單中),那麼需要認證對應用做需求分析,從而判斷使用OrderedDict所帶來的好處是否能超越因額外的記憶體開銷所帶來的缺點。

#

以上是python如何讓字典保持有序(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除