Skip to main content
 首頁 » 程序教程

Python如何實現一個有序的字典

2016年11月03日100123

本文為Python CookBook一書的閱讀筆記。

Python怎樣實現一個可以在迭代或序列化時能夠控制元素的順序的字典呢?解決方案是使用collections模塊中的OrderedDict類。 在迭代操作的時候它會保持元素被插入時的順序,示例如下:

from collections import OrderedDict

d = OrderedDict()
d['foo'] = 1
d['bar'] = 2
d['spam'] = 3
d['grok'] = 4
# 結果為: "foo 1", "bar 2", "spam 3", "grok 4"
for key in d:
    print(key, d[key])

當你想要構建一個將來需要序列化或編碼成其他格式的映射的時候,OrderedDict是非常有用的。比如,你想精確控制以JSON編碼后字段的順序,你可以先使用OrderedDict來構建這樣的數據。

OrderedDict 內部維護著一個根據鍵插入順序排序的雙向鏈表。每次當一個新的元素插入進來的時候, 它會被放到鏈表的尾部。對于一個已經存在的鍵的重復賦值不會改變鍵的順序。

需要注意的是,一個 OrderedDict 的大小是一個普通字典的兩倍,因為它內部維護著另外一個鏈表。 所以如果你要構建一個需要大量 OrderedDict 實例的數據結構的時候(比如讀取100,000行CSV數據到一個 OrderedDict 列表中去), 那么你就得仔細權衡一下是否使用 OrderedDict 帶來的好處要大過額外內存消耗的影響。

評論列表3條評論
追女孩子的方法
追女孩子的方法回復 學習了 謝謝
大家好
大家好回復 c82ef21cbb826ed5f466d90a428fa257e5r451好東西學習了 謝謝分享
招投標
招投標回復 學習到了 感謝分享
發表評論
中文字幕亚洲欧美|欧美97人人模人人爽|av鲁丝一区鲁丝二区鲁丝三区|巨大黑人极品VIDEOS精品