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

不言
發布: 2018-10-11 14:24:56
轉載
3127 人瀏覽過

這篇文章帶給大家的內容是關於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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板