我想在集A
中存储集B
和C
。
我的条件是,如果设置A = {a,b}
并设置B = {b,a}
然后设置A
等于设置B
设置C
将为= {{a,b}}
是否有支持此类内容的数据类型?
答案 0 :(得分:3)
frozenset()
类型符合您的条件:
>>> A = frozenset({"a", "b"})
>>> B = frozenset({"b", "a"})
>>> A == B
True
>>> frozenset({ A, B })
frozenset({frozenset({'b', 'a'})})
答案 1 :(得分:1)
是的,该数据类型只是set
。诀窍是内部集合必须是frozenset
s,set
的不可变对应物,才能将它们放在另一个集合中。您可能还想将外部set
设为frozenset
,具体取决于您要对其执行的操作;例如,如果你想将这些集合无限期地粘贴在更多层集中,那么对于所有事情来说,使用frozensets可能会更容易。
>>> A = frozenset(['a', 'b'])
>>> B = frozenset(['b', 'a'])
>>> C = {A, B}
>>> C
set([frozenset(['a', 'b'])])