错误原因字面解释:因为list是不可哈希的。
什么意思?举2个不同栗子:
例1:
list_0 = [1,2,3,4]
s = set(list_0)
print(s)
>>>{1, 2, 3, 4}
例2:
list_1 = [[1],[2],[3,4]]
s = set(list_1)
print(s)
>>> TypeError: unhashable type: 'list'
仔细观察会发现,以上2个栗子唯一不同的地方,就是列表中的元素类型,list_0中为int,list_1中为list。
而错就错在list不能哈希,导致输出错误。
如何解决?
例3:
s =set()
for item in list_01:
for i in item:
s.add(i)
print(s)
>>> {1, 2, 3, 4}
成功!
将列表中的list元素逐一读取即可。
此外,除了list不可哈希,set、dict也同样不可哈希,处理方式类似。