由于set中的元素必须是唯一(即hashable类型),因此必须是不可变类型的,
不可变类型:tuple ,constant
可变类型:list dict set
同理字典的key也不能为不可变类型。
所以归根结底,还是可变与不可变类型的问题。
>>> d=set()
>>> d.add({})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
>>> d
set()
>>> d.add({1:2})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
a = {1: 2, 2: 3}
>>> list(a)
[1, 2]
>>> set(a)
{1, 2}