[Python] itertools 조합 / 순열 사용법

김다희·2021년 9월 21일
0

Python🖌

목록 보기
1/1
post-thumbnail

파이썬 itertools 모듈에는 많은 함수들이 있다. ( 파이썬 itertools 공식문서 )

그 중에서도 조합 / 순열 함수인 아래 4가지 함수에 대해서 알아보자.

combinations()
combinations_with_replacement()
product()
permutations()

combinations(iterable, r)

iterable에서 원소 개수가 r개인 조합 뽑기

from itertools import combinations

if __name__ == '__main__':
    iterator = [1, 2, 3, 4]
    for i in combinations(iterator, 3):
        print(i)
출력 결과
(1, 2, 3)
(1, 2, 4)
(1, 3, 4)
(2, 3, 4)

combinations_with_replacement(iterable,r)

iterable에서 원소 개수가 r개인 중복 조합 뽑기

from itertools import combinations_with_replacement

if __name__ == '__main__':
    iterator = [1, 2, 3, 4]
    for i in combinations_with_replacement(iterator, 2):
        print(i)
출력 결과
(1, 1)
(1, 2)
(1, 3)
(1, 4)
(2, 2)
(2, 3)
(2, 4)
(3, 3)
(3, 4)
(4, 4)

permutations(iterable,r)

iterable에서 원소 개수가 r개인 순열 뽑기

from itertools import permutations

if __name__ == '__main__':
    iterator = [1, 2, 3, 4]
    for i in permutations(iterator, 2):
        print(i)
출력 결과
(1, 2)
(1, 3)
(1, 4)
(2, 1)
(2, 3)
(2, 4)
(3, 1)
(3, 2)
(3, 4)
(4, 1)
(4, 2)
(4, 3)

product(*iterables, repeat=1)

여러 iterable의 데카르트곱 반환

from itertools import product

if __name__ == '__main__':
    iterator1 = ['A', 'B', 'C']
    iterator2 = ['1', '2', '3']

    for i in product(iterator1, iterator2, repeat=1):
        print(i)
출력 결과
('A', '1')
('A', '2')
('A', '3')
('B', '1')
('B', '2')
('B', '3')
('C', '1')
('C', '2')
('C', '3')
profile
개발 덕질 중(?)

0개의 댓글