【问题标题】:How to make a combination list in Python3?如何在 Python3 中制作组合列表?
【发布时间】:2017-04-13 01:57:33
【问题描述】:

我想列一个这样的列表:

seq = [1,2,3]
\# implementation
print(result) \# [[1], [1,2], [1,2,3], [2], [2,3], [3]]

【问题讨论】:

  • 看看这个。 stackoverflow.com/questions/1617699/…这个问题是针对Java的,但是第一个回复也显示了python中的算法。你想要的是powerset。
  • 那么,我是否必须制作一个原始的 powerset 函数来从 powerset 中消除像 [1,3] 这样的不连续元素?

标签: python-3.x python-3.5


【解决方案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)

谢谢!

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 2016-02-27
    • 1970-01-01
    • 2016-11-08
    • 2021-09-04
    • 2018-10-23
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多