有沒有一種方法可以一次性對 python 字典的所有鍵、子鍵、子次鍵等進行排序?
讓我們假設我有一個字典
dict_1 = {
"key9": "value9",
"key5":"value5"。
"key3":{
"key3_1": "value3_1",
"key3_3"/span>:"value3_3"。
}
"key4":"value4"。
"key2"/span>:"value2"。
"key8":{
"key8_1": "value8_1",
"key8_5":[
"value8_5_3",
"value8_5_1"。
]
"key8_2": "value8_2"。
}
"key4"/span>:"value4"。
"key1"/span>:"value1"。
}
并且我希望它被排序為
dict_1 = {
"key1": "value1",
"key2":"value2"。
"key3":{
"key3_1": "value3_1",
"key3_3"/span>:"value3_3"。
}
"key4":"value4"。
"key5":"value5"。
"key8":{
"key8_1": "value8_1"。
"key8_2":"value8_2"。
"key8_5":[
"value8_5_1",
"value8_5_3"。
]
}
"key9": "value9",
有什么方法可以做到嗎?
請注意:
我的
dict_1可能有幾層的子鍵(嵌套的 字典)或子值(嵌套的串列)。我使用的是 Python 2.7.17,我不能更新它。但是,在 Python 2.7.17 的字典中,順序是不 但在 3.7 之前的 Python 版本的字典中,順序是不被保留的,所以我打賭 排序必須通過使用OrderedDict來完成。
uj5u.com熱心網友回復:
首先,重要的是要知道,字典是沒有順序的。所以,如果你想對一個 dict 進行排序,你需要使用 collections.OrderedDict (它從 Python 2.7 開始存在)。
然后,這是一個遞回函式的用例:
from collections import OrderedDict
def order_dict(d)。
ordered_dict = OrderedDict()
for key in sorted(d.keys())。
val = d[key]
if isinstance(val, dict)。
val = order_dict(val)
ordered_dict[key] = val
return ordered_dict
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/309336.html
標籤:
