3

假设我生成一个frozenset

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({frozenset({}), frozenset({2}), frozenset({3}), frozenset({1})})

所以,我想将空集显式添加到集合中。例如,在我看来,在构建电源组时这是必要的吗?

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

4

1 回答 1

6

E是一个空集,没有元素:

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

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

如果您希望E成为一个包含一个元素的集合,则需要传入一个包含一个元素的可迭代对象;使用{...}集合表示法,或单个元素 tuple(...,)或列表[...]

>>> 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()})
于 2018-05-17T11:13:22.130 回答