Неполучаемый тип: ошибка 'list' в значениях в dict - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть два новых словаря:

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 Ответ

1 голос
/ 08 апреля 2019

Попробуйте это:

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}
...