【发布时间】:2013-09-20 12:25:20
【问题描述】:
我正在尝试使用 generators 在 Python 中构建给定集合的子集列表。说我有
set([1, 2, 3])
作为输入,我应该有
[set([1, 2, 3]), set([2, 3]), set([1, 3]), set([3]), set([1, 2]), set([2]), set([1]), set([])]
作为输出。我怎样才能做到这一点?
【问题讨论】:
-
谷歌为:
python itertools powerset recipe?这正是您要问的...然后在docs.python.org/2/library/itertools.html - 搜索powerset... -
这对我没有帮助,请查看下面的回复。
-
好吧,既然输入是一个集合,那么输出不能包含重复的元素,所以一个元组没有任何可能性,如果你真的想把它转换回一个集合。此外,由于它返回
chain.from_iterable,因此您实际上拥有了一个生成器。有什么是您无法轻松适应您的要求的?return imap(set, chain.from_iterable(...))?
标签: python algorithm set generator powerset