首页 > 解决方案 > 将带有字典的字典转换为具有相同键值对的列表

问题描述

我有字典,并且在该字典中包含许多字典

例如

Dict_a = {'Dict1': {'name': 'Ali', 'age': 19},

        'Dict2': {'name': 'Bob', 'age': 21},

        'Dict2': {'name': 'Ali', 'age': 21}}

现在我想将这些字典转换成这个具有公共键值的字典进入一个列表

Dict_b = {"distinct": [], "match": [[{'name': 'Ali', 'age': 19},

        {'name': 'Ali', 'age': 21}],

        [{'name': 'Bob', 'age': 21}]] }

有没有有效的方法来做到这一点?

标签: pythonpython-3.xdictionary

解决方案


试试这个:

payload = {}

for dict_name, value in Dict_a.items():
    if value["name"] in payload.keys():
        payload[value["name"]].append(value)
    else:
        payload[value["name"]] = [value]

Dict_b = {"distinct": [], "match": payload.values()}

推荐阅读