在python中生成组合

时间:2010-07-03 00:34:25

标签: python arrays multidimensional-array combinations matrix

我不知道如果可能的话,如何在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”循环语句,它迭代每个类的每个元素?或者现在我正在研究这个,迭代工具会处理这个吗?

提前感谢您提供的任何帮助。

3 个答案:

答案 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长度子序列。