我想从旧字典(my_dict)创建一个新字典(new_dict),在 my_dict 的 new_dict 值将是键,键将是值。
预期输出:
{"name" : [1, 3, 5], "last_name": [2, 4, 6]}
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
{"name" : [1, 2, 3, 4, 5, 6], "last_name": [1, 2, 3, 4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
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)
Run Code Online (Sandbox Code Playgroud)
这一行:
new_dict.fromkeys(set(my_dict.values()), [])
Run Code Online (Sandbox Code Playgroud)
创建一个字典,其列表与每个键的值相同,因此稍后您也将附加到同一个列表。
在这种情况下,您可以使用 dict 理解:
new_dict = { k: [] for k in my_dict.values() }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |