首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从包含列表的字典创建多个字典

从包含列表的字典创建多个字典
EN

Stack Overflow用户
提问于 2020-01-09 22:31:22
回答 4查看 465关注 0票数 3

我有一本包含列表的字典。我想用它来创建多个字典。

原件是{'user': ['BEBR', 'FRPA', 'GEMU'], 'udp': ['COLT_BE_8845-udp', 'COLT_FR_8845-udp', 'COLT_DE_8845-udp']}

我想要这样的东西

代码语言:javascript
复制
[{'user': 'BEBR', 'udp': 'COLT_BE_8845-udp'},
{'user': 'FRPA', 'udp': 'COLT_FR_8845-udp'},
{'user': 'GEMU', 'udp': 'COLT_DE_8845-udp'},
....]

我有一个沙盒here

EN

回答 4

Stack Overflow用户

发布于 2020-01-09 22:43:45

你可以做到

代码语言:javascript
复制
res = [{'user':user,'udp':udp} for user, udp in zip(*d.values())]

其中d是您的原始字典

票数 3
EN

Stack Overflow用户

发布于 2020-01-09 22:43:45

尝试以下代码:

代码语言:javascript
复制
result = []
for user, udp in zip(original['user'], original['udp']):
    result.append({'user': user, 'udp':udp})

这将返回一个字典列表,如您的示例所示。

票数 3
EN

Stack Overflow用户

发布于 2020-01-10 00:07:20

您可以在zip中使用dict

代码语言:javascript
复制
d = {'user': ['BEBR', 'FRPA', 'GEMU'], 'udp': ['COLT_BE_8845-udp', 'COLT_FR_8845-udp', 'COLT_DE_8845-udp']}
result = [dict(j) for j in zip(*[[(a, i) for i in b] for a, b in d.items()])]

输出:

代码语言:javascript
复制
[{'user': 'BEBR', 'udp': 'COLT_BE_8845-udp'}, {'user': 'FRPA', 'udp': 'COLT_FR_8845-udp'}, {'user': 'GEMU', 'udp': 'COLT_DE_8845-udp'}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59666215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档