3

n 個のリストを含むリストがあるとします。長さ n のリストのすべての可能な組み合わせを取得し、各要素がその位置を維持するきちんとした方法はありますか。

次に例を示します。

lists=[[1],[2,3],[4,5]]

出力:

[[1,2,4],
 [1,3,4],
 [1,2,5],
 [1,3,5]]
4

2 に答える 2

14

これに使用できますitertools.product

>>> import itertools
>>> lists = [[1], [2, 3], [4, 5]]
>>> list(itertools.product(*lists))
[(1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5)]
于 2012-10-09T18:17:48.713 に答える
0

最初に頭に浮かんだのは次のとおりです。

def find_permutations(lists, context):
    if len(lists) == 1:
        for item in lists[0]:
            yield context + [item]
    else:
        for item in lists[0]:
           for permutation in find_permutations(lists[1:], context + [item]):
               yield permutation
于 2012-10-09T18:22:43.750 に答える