Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストからすべてのペアワイズ(順列)の組み合わせを取得する方法

リストからすべてのペアワイズ(2要素)の組み合わせを取得したい場合、forループによる反復処理appendメソッドを組み合わせることで実現できます。この記事では、ネストしたループを使って、リスト内の異なる位置にある要素同士をすべてタプルとして抽出する方法を解説します。

サンプルコード

以下は、リストからすべてのペアワイズの組み合わせを取得する具体的な実装例です。

my_list = [15, "John", 2, "Will", 53, 'Rob']

print("元のリスト:")
print(my_list)

my_result = []

for i in range(0, len(my_list)):
   for j in range(0, len(my_list)):

      if (i != j):
         my_result.append((my_list[i], my_list[j]))

print("結果:")
print(my_result)

実行結果

元のリスト:
[15, 'John', 2, 'Will', 53, 'Rob']
結果:
[(15, 'John'), (15, 2), (15, 'Will'), (15, 53), (15, 'Rob'), ('John', 15), ('John', 2), ('John', 'Will'), ('John', 53), ('John', 'Rob'), (2, 15), (2, 'John'), (2, 'Will'), (2, 53), (2, 'Rob'), ('Will', 15), ('Will', 'John'), ('Will', 2), ('Will', 53), ('Will', 'Rob'), (53, 15), (53, 'John'), (53, 2), (53, 'Will'), (53, 'Rob'), ('Rob', 15), ('Rob', 'John'), ('Rob', 2), ('Rob', 'Will'), ('Rob', 53)]

コードの解説

  • まず、整数と文字列が混在したリストmy_listを定義し、コンソールに表示します。

  • 結果を格納するための空のリストmy_resultを用意します。

  • 外側のforループと内側のforループによる二重の反復処理で、元のリストに対して2回繰り返しアクセスします。

  • 条件式 i != j により、同じインデックス同士(自分自身とのペア)を除外します。インデックスが異なる場合のみ、対応する2つの要素をタプルとして空のリストに追加します。

  • 最終的に、順序付きペア(順列)としてすべての組み合わせが格納されたリストが、コンソールに出力されます。

補足:itertoolsを使ったより簡潔な方法

標準ライブラリの itertools.permutations を使えば、同じ結果をより簡潔に得ることができます。

from itertools import permutations

my_list = [15, "John", 2, "Will", 53, 'Rob']

my_result = list(permutations(my_list, 2))

print("結果:")
print(my_result)

なお、重複しない組み合わせ(コンビネーション)が必要な場合は、itertools.combinations を使用すると、(A, B) と (B, A) のような順序違いの重複を排除できます。用途に応じて使い分けるとよいでしょう。

  1. Pythonの辞書(ディクショナリ)からすべての値をリストとして取得する方法

    Pythonの辞書に格納されたすべての値をリスト形式で取得したい場合、最もシンプルな方法は dict.values() メソッドを使うことです。このメソッドは辞書内のすべての値を返すため、list() 関数で囲むことで簡単にリストへ変換できます。values() メソッドを使った基本的な例my_dict = {name: TutorialsPoint, time: 15 years, location: India} value_list = list(my_dict.values()) print(value_list)出力結果上記のコードを実行すると、次のような出力が得られます。[Tuto

  2. Pythonの辞書からすべてのキーをリストとして取得する方法

    Pythonの辞書(dict)からすべてのキーをリストとして取得したい場合、最もシンプルな方法は dict.keys() メソッドを使うことです。このメソッドは辞書内のすべてのキーを含むビューオブジェクトを返すため、list() で囲むことで簡単にリストへ変換できます。keys()メソッドを使う例my_dict = {name: TutorialsPoint, time: 15 years, location: India} key_list = list(my_dict.keys()) print(key_list)出力実行すると、次のような結果が得られます。[name, time, loc