我正在尝试在字典中找到两个键的常用值,并将其作为一组返回。但是,当我想将列表更改回一个集合时(如我的代码的最后一行所示),它会产生错误"Unhashable type"
。我知道这个错误意味着什么,但遗憾的是我不知道在这种情况下如何修复它。
def values_in_common(dict, key1, key2):
a = []
b = []
for i, e in dict.items():
if i == key1:
a.append(e)
if i == key2:
b.append(e)
x = []
for i in a:
if i in b:
x.append(i)
return set(x)
答案 0 :(得分:0)
我不确定你的代码究竟应该做什么,但我的理解是:
a = dict.get(key1) or []
b = dict.get(key2) or []
因此,无论key1和key2中存储了什么值,或者如果字典中没有相应的键,则为空列表。
然后,你想在a和b中找到共同的元素,如:
return set(a) & set(b)
回答你的问题,我认为你发布的代码没有问题,但你传递给函数的参数。