반응형
리스트 요소 조합하기
예를들어
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)]
반응형
'(Python)파이썬 > (Python)파이썬 문법' 카테고리의 다른 글
(파이썬) 파이썬 정렬 총 정리/파이썬 다중 조건 정렬 (0) | 2021.06.19 |
---|---|
(파이썬) 길이가 같은 요소 묶기/zip() 사용법 (0) | 2021.06.18 |
(파이썬) 파이썬 소문자 알파벳만 나열/ 대문자 알파벳만 나열 (0) | 2021.06.17 |
파이썬 - 리스트 중복 제거하기(다양한 방법) + 예제 (0) | 2021.06.09 |
파이썬 - 리스트 원소 개수 구하기/collections모듈의 Counter클래스 활용 예제 (0) | 2021.06.02 |
댓글