首页 > 解决方案 > 从现有字典创建新字典

问题描述

我想从旧字典(my_dict)创建一个新字典(new_dict),在 my_dict 的 new_dict 值将是键,键将是值。

预期输出:

{"name" : [1, 3, 5], "last_name": [2, 4, 6]}

但是,我得到:

{"name" : [1, 2, 3, 4, 5, 6], "last_name": [1, 2, 3, 4, 5, 6]}

这是我的代码:

def my_function(my_dict):
    # Creating new dictionary
    new_dict = dict.fromkeys(set(my_dict.values()), [])

    for key, value in my_dict.items():
        new_dict[value].append(key)

    return new_dict

# Existing dictionary
my_dict = {
    1: "name",
    2: "last_name",
    3: "name",
    4: "last_name",
    5: "name",
    6: "last_name"}
res = my_function(my_dict)
print(res)

标签: pythondictionary

解决方案


这一行:

new_dict.fromkeys(set(my_dict.values()), [])

创建一个字典,其列表与每个键的值完全相同,因此稍后您也可以附加到同一个列表。

在这种情况下,您可以使用 dict 理解:

new_dict = { k: [] for k in my_dict.values() }

推荐阅读