我有两个字典 A 和 B。我想将字典 A 的值与字典B的键匹配。如果它们匹配,我想获取字典B的值。
问题是字典 A 的值在一个列表中。
A={'x':['corn','apple'],'y':['coconut','apple']}
B={'corn':6, 'pineapple':7,'apple':8}
最终输出应如下所示
output= {'x':6, 'x':8, 'y':8}
有什么办法可以做到这一点?
我有两个字典 A 和 B。我想将字典 A 的值与字典B的键匹配。如果它们匹配,我想获取字典B的值。
问题是字典 A 的值在一个列表中。
A={'x':['corn','apple'],'y':['coconut','apple']}
B={'corn':6, 'pineapple':7,'apple':8}
最终输出应如下所示
output= {'x':6, 'x':8, 'y':8}
有什么办法可以做到这一点?
字典只能有唯一的键。
也许你的意思是output= {'x': [6, 8], 'y':[8]}?
如果是这样,您可以这样做:
output = {a_key: [B[value] for value in A[a_key] if value in B] for a_key in A.keys()}
我相信以下内容应该通过一点嵌套列表理解为您提供您想要的东西
output = [(k, B[v]) for k in A for v in A[k] if v in B]
结果
[('y', 8), ('x', 6), ('x', 8)]