-
itertools - product(), permutations(), combinations()Python 2021. 9. 1. 09:35반응형
product()
1개 이상의 iterable 간에 곱집합을 생성한다.
주어진 문자들로 구성된 길이 n의 모든 문자열을 만들어야 한다거나 할 때 사용하면 되겠다.
from itertools import product data1 = 'AB' data2 = '가나' for elem in product(data1, data2): print(''.join(elem)) ''' 출력결과 A가 A나 B가 B나 ''' # argument repeat에 반복할 숫자를 지정하면 이전의 iterable들을 숫자만큼 반복하여 곱집합을 생성한다. for elem in product(data1, repeat=3): print(''.join(elem)) ''' 출력결과 AAA AAB ABA ABB BAA BAB BBA BBB '''
permutaions()
iterable의 원소들을 사용하여 순열을 생성한다.
from itertools import permutations data = 'ABCD' for elem in permutations(data, 3): print(elem) ''' 출력결과 ('A', 'B', 'C') ('A', 'B', 'D') ('A', 'C', 'B') ('A', 'C', 'D') ('A', 'D', 'B') ('A', 'D', 'C') ('B', 'A', 'C') ('B', 'A', 'D') ('B', 'C', 'A') ('B', 'C', 'D') ('B', 'D', 'A') ('B', 'D', 'C') ('C', 'A', 'B') ('C', 'A', 'D') ('C', 'B', 'A') ('C', 'B', 'D') ('C', 'D', 'A') ('C', 'D', 'B') ('D', 'A', 'B') ('D', 'A', 'C') ('D', 'B', 'A') ('D', 'B', 'C') ('D', 'C', 'A') ('D', 'C', 'B') '''
combinations()
iterable의 원소를 사용하여 조합을 생성한다.
from itertools import combinations data = 'ABCD' for elem in combinations(data, 3): print(elem) ''' 출력결과 ('A', 'B', 'C') ('A', 'B', 'D') ('A', 'C', 'D') ('B', 'C', 'D') '''
'Python' 카테고리의 다른 글
빠른 리스트 객체 복사 (0) 2021.11.20 Python 실행속도 개선 방법 (4) 2021.10.04 all(), any() 함수 (0) 2021.08.31 여러 iterable 객체를 묶어주는 zip 내장함수 (0) 2021.07.02 for ~ else 문 (0) 2021.07.02