【发布时间】:2019-08-29 03:30:27
【问题描述】:
我编写了一些代码来从第二个字典中获取新值并添加到新字典中。
这是两个字典:
a = {armani: jeans, dolce: gabbana}
b = {jeans: robo, jobs: versace}
这是代码:
{k:b[v] for k,v in a.items() if v in b}
但是,我收到以下错误:unhashable type: 'list' 我知道这可能是因为我对b[v] 的值类似于[[20], [30], [35]]
在过去的几个小时里,我的脑袋一直在发疯。我敢肯定它是如此之小
【问题讨论】:
-
list对象不能用作dict中的键,因为它是可变且不可散列的。尝试使用不可变对象,例如tuple。 -
那么在这种情况下如何解决?我试过
{k:tuple(b[v]) for k,v in a.items() if v in b},但还是不行 -
不,键不能是
list对象,而不是值。您必须更改v,而不是b[v]。也许,b[tuple(v)]. -
@HouLu 仍然遇到同样的错误 :(
-
只是检查那些 dict 键和值对象还是应该被引用的字符串?
标签: python python-3.x list dictionary