标签: python set typeerror
当我在代码中编写一个以集合为元素的集合时,当我运行它时,它将返回"TypeError: unhashable type: 'set'"
"TypeError: unhashable type: 'set'"
示例1:
{{"why_this_doesn´t_work?"}} TypeError: unhashable type: 'set'
示例2:
A={{"a","b"},{"c"}} print(A) TypeError: unhashable type: 'set'
为什么会这样? hashable 是什么意思?
答案 0 :(得分:1)
您不能将集合添加到集合中,因为集合只能存储不可变的对象。这些对象的值除非已重新分配,否则无法更改。由于您可以在Python中将元素添加到集合中,因此集合是可变的并且不是不变的。这意味着它们具有变化的哈希值。
具有可散列性意味着具有一个id,在key:value对的情况下或仅在内存中,该id可用于引用该对象。
如果对象是不可变的,则不会更改其哈希值。但是,使用集时,哈希值在修改后随时会发生变化。因此,集本身不能包含集,因为它仅接受不可变或不可哈希的对象。
如果您需要有关Python中不可变和可变对象和数据类型的帮助,请参考此表: