Python一个班轮合并具有共同价值的字典

问题描述

我所拥有的:

a=[{'name':'a','vals':1,'required':'yes'},{'name':'b','vals':2},{'name':'d','vals':3}]
b=[{'name':'a','type':'car'},'type':'bike'},{'name':'c','type':'van'}] 

我尝试过的事情:

[[i]+[j] for i in b for j in a if i['name']==j['name']]

我得到的:

[[{'name': 'a','type': 'car'},{'name': 'a','vals': 1}],[{'name': 'b','type': 'bike'},{'name': 'b','vals': 2}]]

我想要的:

[{'name': 'a','type': 'car','vals': 1},'type': 'bike','vals': 2}]

注意:

  1. 我需要将字典合并为一个字典。
  2. 它应该仅合并在a和b中都具有共同“名称”的那些人。
  3. 我想要python一个内衬答案。

解决方法

对于Python 3,您可以执行以下操作:

a=[{'name':'a','vals':1},{'name':'b','vals':2},{'name':'d','vals':3}]
b=[{'name':'a','type':'car'},'type':'bike'},{'name':'c','type':'van'}]

print([{**i,**j} for i in b for j in a if i['name']==j['name']])

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...