Python itertools


itertools


itertoolsはPythonで重複データを処理するライブラリです.
提供されるクラスはいくつかありますが、符号化テストで最も有用なクラスは配列、組合せです.
ディスプレイスメントは、リストのようなiterableオブジェクトからr個のデータを抽出して1列に列挙するすべての状況(順序)を計算します.ディスプレイスメントはクラスであるため、オブジェクトを初期化した後、リストデータ型に変換します.
from itertools import permutations

data = ['A', 'B', 'C']
result = list(permutations(data, 3))

print(result)

[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
コンビネーションは、リストのようなIterableオブジェクトからr個のデータを抽出し、順序を考慮せずにリストされたすべての状況(コンビネーション)を計算します.コンビネーションは、オブジェクトの初期化後にリストデータ型に変換されるクラスです.
from itertools import combinations

data = ['A', 'B', 'C']
result = list(combinations(data, 2))

print(result)

[('A', 'B'), ('A', 'C'), ('B', 'C')]
productは、リストのようなiterableオブジェクトからr個のデータを抽出し、1列に列挙するすべての状況(配列など)を計算する.要素のみを繰り返し抽出します.Productオブジェクトを初期化すると、抽出するデータの数がrepeat属性値として使用されます.Productは、オブジェクトを初期化してリストデータ型に変換するクラスです.
from itertools import product

data = ['A', 'B', 'C']
result = list(product(data, repeat=2)) # 2개를 뽑는 모든 순열 구하기(중복 허용)

print(result)

組合せwith replacementは、リストなどのiterableオブジェクトからr個のデータを抽出し、順序を考慮せずにリストする場合(組合せ)をすべて計算します.要素のみを繰り返し抽出します.組合せwith replacementはクラスであるため、オブジェクトの初期化後にリストデータ型に変換されます.