【发布时间】:2012-02-24 22:25:10
【问题描述】:
在 Python2 中我可以使用
def subsets(mySet):
return reduce(lambda z, x: z + [y + [x] for y in z], mySet, [[]])
查找mySet 的所有子集。 Python 3 已删除 reduce。
对于 Python3 的同样简洁的重写是什么?
【问题讨论】:
-
reduce()仍然存在 -- 已移至functools。 -
@SvenMarnach:啊,谢谢。有非
reduce()的版本吗? -
不完全是单行,但 itertools docs 有一个 powerset 实现。
-
它不是写成 1-liner,但可以合并成一个:
chain.from_iterable(combinations(list(iterable), r) for r in range(len(list(iterable))+1)) -
@AdamParkin:谢谢。
chain来自哪里?