我有两个新的字典,如下所示:
a = {Banana: 60, Apple: 90, Pear: 80}
b = {60: 25, 90: 45, 89: 94}
我想创建一个新字典,该字典仅将字典b中的值带入,然后将其合并到a中。因此,例如Banana的值为60,这也是b中的键。 60的值是25。所以最后我要Banana: 25
所以我写了如下代码:
{k:b[v] for k,v in a.items() if v in b}
但是我仍然收到以下错误:unhashable type: 'list'
我理解这可能是因为我的b[v]
的值就像[[25], [45], [94]]
在我的字典理解中,我尝试将其转换为元组,尝试使其变平,但仍然没有运气。
任何帮助都会很棒
答案 0 :(得分:1)
尝试一下:
a = {'Banana': 60, 'Apple': 90, 'Pear': 80}
b = {60: 25, 90: 45, 89: 94}
c = {k:(b[a[k]] if a[k] in b else a[k]) for k in a}
输出:
c = {'Banana': 25, 'Apple': 45, 'Pear': 80}