无法散列的类型:字典中的值“列表”错误

时间:2019-04-08 09:38:52

标签: python python-3.x dictionary defaultdict

我有两个新的字典,如下所示:

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]]

在我的字典理解中,我尝试将其转换为元组,尝试使其变平,但仍然没有运气。

任何帮助都会很棒

1 个答案:

答案 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}