如何在 Python3 中制作组合列表?
Posted
技术标签:
【中文标题】如何在 Python3 中制作组合列表?【英文标题】:How to make a combination list in Python3? 【发布时间】:2017-04-13 01:57:33 【问题描述】:我想列一个这样的列表:
seq = [1,2,3]
\# implementation
print(result) \# [[1], [1,2], [1,2,3], [2], [2,3], [3]]
【问题讨论】:
看看这个。 ***.com/questions/1617699/…这个问题是针对Java的,但是第一个回复也显示了python中的算法。你想要的是powerset。 那么,我是否必须制作一个原始的 powerset 函数来从 powerset 中消除像 [1,3] 这样的不连续元素? 【参考方案1】:您可以使用 itertools 组合:https://docs.python.org/3/library/itertools.html#itertools.combinations
你可以看看这个answer了解更多详情
【讨论】:
我知道itertools,但我不想制作像[1,3]这样的不连续元素。【参考方案2】:我终于可以自己找到解决方案了:
N = 3
print([list(range(i, j)) for i in range(1,N+2) for j in range(i+1,N+2)])
或者,
N = 3
lis = [list(range(i + 1, j + 1)) for (i, j) in itertools.combinations(list(range(N + 1)), 2)]
print(lis)
谢谢!
【讨论】:
以上是关于如何在 Python3 中制作组合列表?的主要内容,如果未能解决你的问题,请参考以下文章