日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

《Python Cookbook 3rd》笔记(1.7):字典排序

發布時間:2023/12/13 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Python Cookbook 3rd》笔记(1.7):字典排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字典排序

問題

你想創建一個字典,并且在迭代或序列化這個字典的時候能夠控制元素的順序。

解法

為了能控制一個字典中元素的順序,你可以使用 collections模塊中的OrderedDict類。在迭代操作的時候它會保持元素被插入時的順序,示例如下:

from collections import OrderedDict 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])

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

>>> import json >>> json.dumps(d) '{"foo": 1, "bar": 2, "spam": 3, "grok": 4}' >>>

討論

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

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

總結

以上是生活随笔為你收集整理的《Python Cookbook 3rd》笔记(1.7):字典排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。