将空集添加到 python 中的 frozenset 中的集合族

Add the empty set to a family of sets in a frozenset in python

假设我用

生成一个冻结集
A = frozenset(frozenset([element]) for element in [1,2,3])

我有空集

E = frozenset(frozenset())

现在我想要两个集合的并集:

U = A | E

这给了我

frozenset({frozenset({2}), frozenset({3}), frozenset({1})})

这假定包含空冻结集的冻结集本身是空的。不过,我想要

frozenset({frozenset({}), frozenset({2}), frozenset({3}), frozenset({1})})

所以,我想将空集显式添加到集合中。例如,在构建幂集时,我认为这是必要的?

那么:只包含空集的集合族本身是空的吗?在 Python 中,有没有一种方法可以使用变量类型 setfrozenset 显式地将空集包含到集合族中?

E 是空集,没有元素:

>>> frozenset(frozenset())
frozenset()

那是因为 fronenset() 的参数是一个 要添加的可迭代值 frozenset() 是一个空的可迭代对象,因此不会添加任何内容。

如果你希望E是一个只有一个元素的集合,你需要传入一个只有一个元素的iterable;使用 {...} 集合表示法,或单个元素元组 (...,),或列表 [...]:

>>> frozenset({frozenset()})  # pass in a set() with one element.
frozenset({frozenset()})

现在您得到了预期的输出:

>>> A = frozenset(frozenset([element]) for element in [1,2,3])
>>> E = frozenset({frozenset()})
>>> A | E
frozenset({frozenset({3}), frozenset({2}), frozenset({1}), frozenset()})