我不知道如果可能的话,如何在Python中使用它。我需要做的是从3个独立的数组创建一个数组(或矩阵,或矢量?)。每个数组都是4个元素,它们返回:
Class1 = [1,2,3,4] 第2类= [1,2,3,4] Class3 = [1,2,3,4]
现在我想做的是返回这三个类的所有可能组合。
示例:
1 1 1
2 1 1
3 1 1
4 1 1
1 2 1
2 2 1
3 2 1
4 2 1 ...
...等等到64行(4个元素* 16个可能的组合,每个类= 64行
我希望有一种方法可以在python中执行此操作。我确信有,但我不确定最有效的方法是什么。也许是一个“for in”循环语句,它迭代每个类的每个元素?或者现在我正在研究这个,迭代工具会处理这个吗?
提前感谢您提供的任何帮助。
答案 0 :(得分:29)
您想要的是Cartesian product:
import itertools
iterables = [ [1,2,3,4], [88,99], ['a','b'] ]
for t in itertools.product(*iterables):
print t
答案 1 :(得分:8)
最简单的方法:
for i in Class1:
for j in Class2:
for k in Class3:
print (i,j,k)
答案 2 :(得分:1)
检查Python itertools
标准module:
itertools.combinations(iterable,r)
返回输入可迭代元素的r长度子序列。