gpt4 book ai didi

python - 列出所有组合 (Python)

转载 作者:行者123 更新时间:2023-11-30 23:31:32 45 4
gpt4 key购买 nike

我正在尝试输出具有某些约束的列表的所有组合:

我需要打印长度x与域1到y的所有组合。

例如,设 x=3,域 y=4。我需要用 3 个成员生成 1 到 4 的所有可能组合,不重复:

[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]

我知道这应该是 y 选择 x,但很难弄清楚如何循环找到所有组合。

使用itertools我知道如何生成给定列表的长度x的所有组合:

import itertools
print list(itertools.combinations([1,2,3],2))

但我不知道如何生成具有特定域的所有组合。

最佳答案

要创建从 1 到 y 的列表,请使用 range(1, y+1)。有了这些知识,就可以非常简单地利用您当前的 itertools 知识并将其应用于问题:

import itertools
print list(itertools.combinations(range(1, y+1), x))

要将每个结果作为列表而不是元组获取,您可以使用列表理解:

print [list(x) for x in itertools.combinations(range(1, y+1), x)]

或者使用map()的替代方案:

print map(list, itertools.combinations(range(1, y+1), x))

关于python - 列出所有组合 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19868956/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com