Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네트워크
- kt 에이블스쿨 6기
- 케이티 에이블스쿨 6기 spring
- 파이썬
- 백준 사탕 게임
- 케이티 에이블스쿨 6기 후기
- kt 에이블스쿨 6기 빅프로젝트
- kt 에이블스쿨 6기 미니 프로젝트
- 프로그래머스
- 구현
- kt 에이블스쿨 기자단
- 케이티 에이블스쿨 6기 java
- 머신러닝
- 백준
- kt 에이블스쿨 6기 ai
- 케이티 에이블스쿨 6기
- 케이티 에이블스쿨
- KT AIVLE
- 티스토리챌린지
- SQLD
- 데이터 프레임
- 케이티 에이블스쿨 기자단
- 앙상블
- kt aivle school
- KT 에이블스쿨
- 알고리즘
- 오블완
- 판다스
- 에이블 기자단
- 케이티 에이블스쿨 6기 ai
Archives
- Today
- Total
미식가의 개발 일기
[파이썬] itertools 순열과 조합 본문
순열
from itertools import permutations
vlist = [10, 20, 30] # 2차원 리스트도 가능
permut = list(permutations(vlist, len(vlist)))
print(permut) -> [(10, 20, 30), (10, 30, 20), (20, 10, 30), (20, 30, 10), (30, 10, 20), (30, 20, 10)]
→ permutations를 list()로 감싸줘야 하는 이유는?
permutations는 iterable객체로 반복 가능한 객체이다. 즉, 반복문을 사용하여 그 안에 있는 순열들을 하나씩 가져올 수 있으나 명시적으로 iterable한 형태(열거형 자료형)로 변환하지 않으면 순열을 직접적으로 확인할 수는 없다.
중복 순열
from itertools import product
vlist = [10, 20]
p = list(product(vlist, repeat=3))
print(p) -> [(10, 10, 10), (10, 10, 20), (10, 20, 10), (10, 20, 20), (20, 10, 10), (20, 10, 20), (20, 20, 10), (20, 20, 20)]
조합
from itertools import combinations
vlist = [10, 20, 30]
combi = list(combinations(vlist, len(vlist)))
print(combi)
ans = []
for combi in combinations(vlist, len(vlist)):
ans.append(sum(combi))
→ 각 조합의 합 구하기
중복 조합
from itertools import combinations_with_replacement
vlist = [10, 20]
combs = list(combinations_with_replacement(vlist, 2))
반응형
'Python' 카테고리의 다른 글
[파이썬] 문자열 조작 (0) | 2024.07.11 |
---|---|
[파이썬] collections -> Queue, Counter, defaultdict (0) | 2024.07.11 |
[파이썬] 람다 함수 (0) | 2024.07.11 |
[파이썬] 리스트 컴프리헨션 (0) | 2024.07.11 |
[파이썬] 내장 데이터 타입(리스트, 딕셔너리, 튜플, 집합) (0) | 2024.07.11 |