TypeError:无法散列的类型:“ set”

时间:2018-11-04 16:59:57

标签: python python-3.x

我有以下代码为我提供了集合A和B的并集,但它给了我错误:

  

TypeError:不可哈希类型:'set'

代码:

A = {1, {2}, 3}
B = {{1, {2}}, 3, 4}
A | B

出了什么问题?

1 个答案:

答案 0 :(得分:1)

正如@WilliemVanOnsem所指出的:sets是可变的且不可散列,不能包含在其他集合中。

如果您需要可哈希集,则可以use frozensets-已冻结 (不可变),因此可哈希:

A = {1, frozenset({2}), 3}
B = {frozenset({1, frozenset({2})}), 3, 4}
print(A | B)

输出:

set([1, 3, 4, frozenset([2]), frozenset([1, frozenset([2])])])