是否存在无序集合的Python数据类型?

时间:2017-11-18 02:51:02

标签: python set

我想在集A中存储集BC。 我的条件是,如果设置A = {a,b}并设置B = {b,a}

然后设置A等于设置B

设置C将为= {{a,b}}

是否有支持此类内容的数据类型?

2 个答案:

答案 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'])])