

3次元配列でitertoolsを用いて組み合わせを求めようと考えています。  
li1[i]のところから１通りずつ選ぶ総組み合わせを求めたいです。

[code]

    li1=[[[0, 2],[0,1,2]], 
         [[3]], 
         [[7, 9], [7,8,9],[7,6,9]], 
         [[11]], 
         [[12, 10, 20], [12, 14, 18, 20]]]
    
[/code]

例えばli1[i]の先頭を組み合わせた場合はli1[0][0]→li1[1][0]→li1[2][0]→li1[3][0]li1[4][0]で[0,2,3,7,9,11,12,10,20]となります。

[code]

    result=[[0,2,3,7,9,11,12,10,20],[0,2,3,7,9,11,12,14,18,20],
            [0,2,3,7, 8, 9,11,12,10,20],[0,2,3,7, 8, 9,11,12,14,18,20],
            [0,2,3,7,6,9,11,12,10,20],[0,2,3,7,6,9,11,12,14,18,20],
            [0,1,2,3,7,9,11,12,10,20],[0,1,2,3,7,9,11,12,14,18,20],
            [0,1,2,3,7,8,9,11,12,10,20],[0,1,2,3,7,8,9,11,12,14,18,20],
            [0,1,2,3,7,6,9,11,12,10,20],[0,1,2,3,7,6,9,11,12,14,18,20]]
    
[/code]

itertoolsを用いない方法でも構いません。よろしくお願いします。


CC BY-SA 3.0
2015-11-23T11:11:02.160
19205
2015-11-23T12:22:51.037
13347
question
python
3次元配列でitertoolsを用いて組み合わせを求めたい

[code]

    >>> import itertools
    >>> [sum(list(l), []) for l in apply(itertools.product, li1)]
    
[/code]


CC BY-SA 3.0
2015-11-23T12:22:51.037
19210
2015-11-23T12:22:51.037
19205
answer