python - 生成可能的组合并仅获得前 50 个

标签 python combinations

我正在寻找一种方法来获得可能的组合中的前 50 个(20 个固定长度)与条件,但我似乎无法找到我正在寻找的东西。我在下面有一个例子。

import itertools
a = array([1,2,5])
b = array([8,9,10])
c = 0
if c == 1:
  x = a
  y = b
else:
  x = b
  y = a
mylist = list(itertools.product(x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y))

我的输出是:

(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1)
(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 2)
(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 5)
(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 2 8 1)
(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 2 8 2)
(8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 1 8 2 8 5)
.
.

等等..

我已经遇到了内存错误。我认为这有太多组合,所以我只想获得前 50 个。有办法吗?

提前致谢!

最佳答案

继续使用 itertools,使用 islice :

list(itertools.islice(itertools.product(x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y,x,y), 50))

这从 product 中获取前 50 个元素并将它们转换成一个列表。

关于python - 生成可能的组合并仅获得前 50 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014484/

相关文章:

python - 调试期间 VSCode python 'Unverified breakpoint'?

algorithm - 概率雇佣-助手

OS X 上的 Python : Getting local date time patterns

javascript - 复杂 HTML 的数据表导出(python 变形)

python - Jupyter Notebook 打开但看不到内容

python - 使用 PdfPages 添加文本 - matplotlib

python - 如何在 Python 中创建 3 位数字的每种组合的列表?

algorithm - 计算最多 2 次交换后的不同排列

r - 如何使用r省略data.frame中单词的倒数

python - 行和列中唯一的条目的组合