不可用类型:'set'错误

时间:2016-11-25 14:08:26

标签: python python-3.x set

我正在尝试在字典中找到两个键的常用值,并将其作为一组返回。但是,当我想将列表更改回一个集合时(如我的代码的最后一行所示),它会产生错误"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)

1 个答案:

答案 0 :(得分:0)

我不确定你的代码究竟应该做什么,但我的理解是:

a = dict.get(key1) or []
b = dict.get(key2) or []

因此,无论key1和key2中存储了什么值,或者如果字典中没有相应的键,则为空列表。

然后,你想在a和b中找到共同的元素,如:

return set(a) & set(b)

回答你的问题,我认为你发布的代码没有问题,但你传递给函数的参数。