我如何在Python中创build一组集合?

我正在尝试在Python中创build一组集合。 我无法弄清楚如何去做。

从空集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中有一套?

我正在处理大量集合集合,我希望能够不必处理重复集合(集合A1,A2,… B的集合B,如果Ai = Aj,An将“取消”两个集合)

Python的抱怨,因为内部set对象是可变的,因此不可哈希。 解决方法是使用内部集合的frozenset集,以表明您无意修改它们。

人们已经提到,你可以用一个frozenset()来做到这一点,所以我只是添加一个代码如何实现这一点:

例如,您想从以下列表中创build一组集合:

 t = [[], [1, 2], [5], [1, 2, 5], [1, 2, 3, 4], [1, 2, 3, 6]] 

您可以按照以下方式创build您的设置:

 t1 = set(frozenset(i) for i in t) 

在里面使用frozenset

所以我有完全相同的问题。 我想创build一个数据结构,作为一组集合。 问题是这些集合必须包含不可变的对象。 所以,你可以做的只是把它作为一组元组。 这对我来说工作得很好!

 A = set() A.add( (2,3,4) )##adds the element A.add( (2,3,4) )##does not add the same element A.add( (2,3,5) )##adds the element, because it is different!