use*_*764 2 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))
Run Code Online (Sandbox Code Playgroud)
我的输出是:
(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)
.
.
Run Code Online (Sandbox Code Playgroud)
等等..
我已经遇到了内存错误.我认为这有太多组合,所以我只想获得前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))
Run Code Online (Sandbox Code Playgroud)
这将获取前50个元素product并将它们转换为列表.