[英]How to sort keys in multidimensional dict
我有多維字典:
my_dict = {
"first": {
"bbb": "aaa",
"ccc": "sdfs",
"aaa": "123"
},
"other": {
"ttt": "a",
"e": "e",
"yy": "y"
},
"aaa": {
"q": "a",
"e": "e",
"r": "y"
}
}
我想根據字母順序對字典中的第二個維度進行排序。 我想收到:
my_new_dict = {
"first": {
"aaa": "123",
"bbb": "aaa",
"ccc": "sdfs"
},
"other": {
"e": "e",
"ttt": "a",
"yy": "y"
},
"aaa": {
"e": "e",
"q": "a",
"r": "y"
}
}
我努力了:
my_new_dict = sorted(my_dict.items(), key=lambda x: lambda y: y[0])
但這返回了我的錯誤:
TypeError:“dict”和“dict”的實例之間不支持“<”。
您可以對每個子詞典使用sorted
:
my_dict = { "first": { "bbb": "aaa", "ccc": "sdfs", "aaa": "123" }, "other": { "ttt": "a", "e": "e", "yy": "y" }, "aaa": { "q": "a", "e": "e", "r": "y" } }
output = {k: dict(sorted(v.items())) for k, v in my_dict.items()}
print(output)
# {'first': {'aaa': '123', 'bbb': 'aaa', 'ccc': 'sdfs'},
# 'other': {'e': 'e', 'ttt': 'a', 'yy': 'y'},
# 'aaa': {'e': 'e', 'q': 'a', 'r': 'y'}}
請注意,字典的“排序”保證僅適用於 python 3.7+。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.