簡體   English   中英

如何對多維字典中的鍵進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM