我正在尝试编写一个程序来返回列表的子列表,即列表[1,2,3]
,程序应该返回[1],[2],[3],[1,2],[2,3] and [1,2,3]
。
除了列表之外,我也知道字典的概念。那么,有人可以告诉我如何解决这个问题,以便我可以在其他类似问题中实现相同的概念吗?
答案 0 :(得分:0)
有一个实施here
from itertools import chain, combinations
def powerset(iterable):
xs = list(iterable)
# note we return an iterator rather than a list
return chain.from_iterable( combinations(xs,n) for n in range(len(xs)+1) )
>>> list(powerset([1,2,3]))
[(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]
如果你不想要空元素:
>>> list(filter(lambda x: len(x) >= 1, powerset([1,2,3])))
[(1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]