itertools


珂太の練習では、リストから3つの要素を繰り返し抽出しないという問題があったので、3重の周りをむやみにやった.🤯 しかし、itertoolsライブラリを使用すると、1行の問題を解決できます.🤦‍♀️
itertools
Pythonで重複データを処理する機能を含むライブラリ.
permutations
リストのようなiterableオブジェクトからr個のデータを抽出して1列に列挙するすべての場合(シーケンス=配列)を計算します.
from itertools import permutations

data=['A','B','C']
#data 리스트에서 3개 데이터를 뽑아 모든 경우를 나열한 후 리스트로 변환.
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')]
'''
combinations
リストのようなiterableオブジェクトからr個のデータを抽出し,順序を考慮せずにリストされたすべての状況(組合せ=組合せ)を計算する.
from itertools import combinations

data=['A','B','C']
#data 리스트에서 2개 데이터를 뽑아 모든 조합을 구하고 리스트로 변환
result=list(combinations(data,2))
print(result)
'''
실행결과
[('A', 'B'), ('A', 'C'), ('B', 'C')]
'''
productproductpermutationsと同じですが、要素の繰り返しを許可します.抽出するデータの数をrepeat属性に入れます.
from itertools import product

data=['A','B','C']

result=list(product(data,repeat=2))
print(result)
'''
실행결과
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), 
('B', 'B'), ('B', 'C'), ('C', 'A'), ('C', 'B'), ('C', 'C')]
'''
combinations_with_replacementcombinations_with_replacementcombinationsと同じですが、要素の繰り返しを許可します.
from itertools import combinations_with_replacement

data=['A','B','C']
 
result=list(combinations_with_replacement(data,2))
print(result)
'''
실행결과
[('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'B'), ('B', 'C'), ('C', 'C')]
'''
※地図も使えます.

res=list(map(list,permutations(s,2)))
res=list(map(커스텀함수,permutations(s,2)))
プログラマ高得点kit完全ナビゲーション部分小数点検索問題リファレンス
参考資料:イコテ452 pから454 p