1

我有两个字典 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}

有什么办法可以做到这一点?

4

2 回答 2

1

字典只能有唯一的键。

也许你的意思是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()}
于 2019-09-14T04:38:15.103 回答
1

我相信以下内容应该通过一点嵌套列表理解为您提供您想要的东西

output = [(k, B[v]) for k in A for v in A[k] if v in B]

结果

[('y', 8), ('x', 6), ('x', 8)]
于 2019-09-14T04:30:53.410 回答