我正在尝试用Python制作一组集合。我想不出该怎么做。
从空集xx
开始
xx = set([])
# Now we have some other set, for example
elements = set([2,3,4])
xx.add(elements)
但我得到了
TypeError: unhashable type: 'list'
或
TypeError: unhashable type: 'set'
在Python中可以有一组集合吗?
我正在处理一个很大的集合,我希望不需要处理重复的集合(集合B包含集合A1,A2,...,如果Ai =Aj,则会“取消”两个集合)。
发布于 2011-05-09 08:18:50
Python的抱怨是因为内部的set
对象是可变的,因此是不可哈希的。解决方案是对内部集使用frozenset
,以表明您不打算修改它们。
发布于 2014-01-28 17:06:33
人们已经提到你可以使用frozenset()来实现这一点,所以我将添加一个代码来实现这一点:
例如,您希望从以下列表列表中创建一组集合:
t = [[], [1, 2], [5], [1, 2, 5], [1, 2, 3, 4], [1, 2, 3, 6]]
您可以通过以下方式创建您的集:
t1 = set(frozenset(i) for i in t)
发布于 2011-05-09 08:17:36
在内部使用frozenset
。
https://stackoverflow.com/questions/5931291
复制相似问题