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
- Graph
- 알기쉬운 알고리즘
- buffer
- JSON
- insertion sort
- s
- Stack
- list 컬렉션
- 이스케이프 문자
- Algorithm
- Serialization
- Selection Sorting
- 메모리구조
- C programming
- 혼자 공부하는 C언어
- R
- stream
- coding test
- datastructure
- 이것이 자바다
- C 언어 코딩 도장
- 윤성우 열혈자료구조
- 윤성우의 열혈 자료구조
Archives
- Today
- Total
Engineering Note
[Python] combinations, permutations 함수 본문
Programming Language/Python
[Python] combinations, permutations 함수
Software Engineer Kim 2021. 12. 30. 01:40permutations 함수
- 서로 다른 n개중에서 r개를 골라 나열하는 것을 순열이라 하는데 이러한 순열을 구해주는 파이썬 함수
시퀀스 자료형과 r에 해당하는 숫자를 함수의 인자로 넘겨 주면 된다.
from itertools import combinations,permutations
orders = ["XYZ", "XWY", "WXA"]
print(list(permutations(orders,2)))
출력결과
combinations
- 서로 다른 n개중에서 r개를 고르는 경우를 조합이라 하는데 이러한 조합을 구해주는 파이썬 함수
시퀀스 자료형과 r에 해당하는 숫자를 함수의 인자로 넘겨주면 된다
이때 함수의 반환은 객체이므로 list 함수로 리스트 자료형으로 만들어 준 후에 출력해서 결과를 확인 할 수 있다.
이때 각 조합의 경우의 수는 튜플 형태를 원소로한다. 아래의 예를 보면 orders(3개의 원소)에서 2가지를 뽑는 경우의 수는 총 3가지인데 ('XYZ','XWY'), ('XYZ','WXA'), ('XWY','WXA')이다. 이 경우를 튜플형태로 말고 문자열로 묶어서 보면 'XYZ'와 'XWY'를 합친 'XYZXWY', 'XYZWXA', 'XWYWXA'가 된다. 이때 주의할 점이 있다. 만약에 orders가 아래의 주어진대로 ["XYZ", "XWY", "WXA"]의 순서가 아니라 ["WXA","XYZ", "XWY", ]였다고 가정해보자. 이때 위와 같이 조합의 가지수를 구하고 튜플형태가 아니라 하나의 문자열로 합친다면 다음과 같다. "WXAXYZ", "WXAXWY", "XYZXWY"이다. 이유는 튜플형태로 구해진 경우가 인자의 순서 그대로([("WXA","XYZ"), ("WXA","XWY"),("XYZ","XWY")]) 구해지기 때문이다. 그러므로 이러한 경우를 대비하여 인자로 넘겨주는 시퀀스자료형을 정렬을 한 형태로 넘겨 주면 문제를 해결할 수 있다.
from itertools import combinations,permutations
orders = ["XYZ", "XWY", "WXA"]
print(list(combinations(orders,2)))
출력결과
'Programming Language > Python' 카테고리의 다른 글
[Python] 함수의 매개변수로 리스트 전달하기 (0) | 2022.01.05 |
---|---|
[Python] sorted 와 sort 차이 (0) | 2021.12.30 |
[Python] 파이썬의 특별한 변수 __name__ (0) | 2021.12.17 |
[Python] sqlalchemy, pymysql 비교 테스트 (0) | 2021.11.27 |
[Python] 파이썬 함수호출 변수 저장 오류 (0) | 2021.11.18 |
Comments