본문 바로가기
(Python)파이썬/(Python)파이썬 문법

(파이썬) 리스트 요소 조합하기/ permutations & combinations

by 공부가싫다가도좋아 2021. 6. 18.
반응형

리스트 요소 조합하기


예를들어 

arr= [1,2,3,4]가 있을 때, 리스트 안의 숫자들을 여러가지 형태로 조합하고 싶을때가 있습니다.

그럴때 사용하는 두 가지 방법이 있습니다. 

방법1: 순서 상관 있는 조합을 원할때 - permutations

arr에서 [1,2,3]과 [1,3,2] 요소는 같지만 순서를 바꾼 것까지 원할때

 

방법2: 순서 상관 없는 조합을 원할때 -combinations

arr에서 [1,2,3], [1,2,4], [2,3,4]...등 리스트안의 요소가 같으면 안되는 조합을 원할때

([1,2,3],[1,3,2] 등 요소는 같지만 순서만 바꾼거 포함X )

import itertools

arr = [1,2,3,4]
pm = itertools.permutations(arr,3) #3개씩 요소를 묶음, 2를쓰면 2개씩 묶음
print(list(pm))

cb = itertools.combinations(arr,3)
print(list(cb))

#pm : [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]

#cb : [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

 

 

반응형

댓글