62

長さが異なる可能性のある複数のリストが与えられた場合、各リストから 1 つの項目で、値のすべての組み合わせを反復処理したいと考えています。例えば:

first = [1, 5, 8]
second = [0.5, 4]

次に、の出力を次のようにします。

combined = [(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]

結合されたリストを反復処理したい。どうすればこれを完了できますか?

4

2 に答える 2

111

itertools.productトリックを行う必要があります。

>>> import itertools
>>> list(itertools.product([1, 5, 8], [0.5, 4]))
[(1, 0.5), (1, 4), (5, 0.5), (5, 4), (8, 0.5), (8, 4)]

はイテレータをitertools.product返すので、一度だけ反復する場合はリストに変換する必要はありません。

例えば。

for x in itertools.product([1, 5, 8], [0.5, 4]):
    # do stuff
于 2013-05-05T11:38:20.160 に答える