pythonコード百科事典

コピペですぐ使えるPythonコードをご紹介

Pythonで組み合わせを総当りで実行する方法

概要

Pythonで、リストやタプルなどの要素をすべての組み合わせで試すことを「総当たり」と呼びます。

itertoolsを用いる方法

以下に、リストの要素をすべての組み合わせで試す例を示します。

from itertools import combinations

# リストを作成する
items = [1, 2, 3]

# 組み合わせを生成する
for c in combinations(items, 2):
    print(c)

上記のコードでは、combinations 関数を使用して、リストの要素をすべての組み合わせで生成しています。
combinations 関数は、itertools モジュールに含まれるジェネレータ関数であり、要素を組み合わせる際に、順序は考慮されません。

上記のコードを実行すると、以下のように出力されます。

(1, 2)
(1, 3)
(2, 3)

手動で記述する方法

以下に、手動で組み合わせを生成する例を示します。

# リストを作成する
items = [1, 2, 3]

# 組み合わせを生成する
for i in range(len(items)):
    for j in range(i + 1, len(items)):
        c = (items[i], items[j])
        print(c)

上記のコードでは、2つの for ループを使用して、リストの要素をすべての組み合わせで生成しています。
この方法でも、順序は考慮されず、同じ組み合わせが複数生成されることはありません。

上記のコードを実行すると、以下のように出力されます。

(1, 2)
(1, 3)
(2, 3)