python - 从现有字典创建新字典
问题描述
我想从旧字典(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)
解决方案
这一行:
new_dict.fromkeys(set(my_dict.values()), [])
创建一个字典,其列表与每个键的值完全相同,因此稍后您也可以附加到同一个列表。
在这种情况下,您可以使用 dict 理解:
new_dict = { k: [] for k in my_dict.values() }
推荐阅读
- spring-integration - Spring Cloud Stream DLQ Native 编码问题:Payload is not byte[]
- php - 修改脚本以显示内部文件(txt、bat、csv 等)
- java - Selenium WebDriverWait.until(invisiblityOfAllElements) 在 NoSuchElementException 上返回超时
- python - 当函数内部的变量之一处于活动状态时,Python 返回整数
- python - 按下取消时如何在 tkinter askopenfilename 上结束 for 循环?
- javascript - Javascript:从带有小数的整数中减去整个整数会改变十进制值?
- firebase - 如何从 Firebase 函数 CDN 缓存中省略“查询字符串”?
- wordpress - Opencart 到 Wordpress
- powershell - 如何使用powershell将下面的CSV文件转换为JSON?
- database - 在 AWS Oracle RDS 中导入 Oracle 转储期间出现错误“ora-01950:对表空间没有权限”