Head vs breakz
[Code] - Python / 순열 Permutation , 조합 Combination, 곱집합 Product 사용법 본문
Head/Code
[Code] - Python / 순열 Permutation , 조합 Combination, 곱집합 Product 사용법
headbreakz 2020. 8. 26. 15:08Permutations( 리스트 , 추출개수 )
from itertools import permutations
num_5 = [1,2,3,4,5]
answer_6 = list(permutations(num_5,2))
print(answer_6)
[(1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 3), (2, 4),
(2, 5), (3, 1), (3, 2), (3, 4), (3, 5), (4, 1), (4, 2),
(4, 3), (4, 5), (5, 1), (5, 2), (5, 3), (5, 4)]
num_6 = [1,2,3,4,5]
answer_7 = list(permutations(num_5,3))
print(answer_7)
[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 2), (1, 3, 4), (1, 3, 5),
(1, 4, 2), (1, 4, 3), (1, 4, 5), (1, 5, 2), (1, 5, 3), (1, 5, 4),
(2, 1, 3), (2, 1, 4), (2, 1, 5), (2, 3, 1), (2, 3, 4), (2, 3, 5),
(2, 4, 1), (2, 4, 3), (2, 4, 5), (2, 5, 1), (2, 5, 3), (2, 5, 4),
(3, 1, 2), (3, 1, 4), (3, 1, 5), (3, 2, 1), (3, 2, 4), (3, 2, 5),
(3, 4, 1), (3, 4, 2), (3, 4, 5), (3, 5, 1), (3, 5, 2), (3, 5, 4),
(4, 1, 2), (4, 1, 3), (4, 1, 5), (4, 2, 1), (4, 2, 3), (4, 2, 5),
(4, 3, 1), (4, 3, 2), (4, 3, 5), (4, 5, 1), (4, 5, 2), (4, 5, 3),
(5, 1, 2), (5, 1, 3), (5, 1, 4), (5, 2, 1), (5, 2, 3), (5, 2, 4),
(5, 3, 1), (5, 3, 2), (5, 3, 4), (5, 4, 1), (5, 4, 2), (5, 4, 3)]
txt = 'ABCD'
answer = list(permutations(txt,2))
print(answer)
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'A'),
('B', 'C'), ('B', 'D'), ('C', 'A'), ('C', 'B'),
('C', 'D'), ('D', 'A'), ('D', 'B'), ('D', 'C')]
Combinations( 리스트 , 추출개수 )
from itertools import combinations
#리스트
num_7 = [1,2,3,4,5,6]
#combination 사용 - 리스트 num_7에서 순서와 상관없이 2개 배열을 리스트로 저장
answer_8 =list(combinations(num_7,2))
#결과
print(answer_8)
[(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3),
(2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6),
(4, 5), (4, 6), (5, 6)]
#리스트
num_8 = [1,2,3,4,5,6]
#combination 사용 - 리스트 num_8에서 순서와 상관없이 3개 배열을 리스트로 저장
answer_9 =list(combinations(num_7,3))
#결과
print(answer_9)
[(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 2, 6), (1, 3, 4),
(1, 3, 5), (1, 3, 6), (1, 4, 5), (1, 4, 6), (1, 5, 6),
(2, 3, 4), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6),
(2, 5, 6), (3, 4, 5), (3, 4, 6), (3, 5, 6), (4, 5, 6)]
txt_10 = 'ABCD'
answer = list(combinations(txt_10,2))
print(answer)
[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
Product( 리스트 들)
from itertools import product
#리스트
total_list = [[1,2,3,4],['a','b','c','d'],['A','B','C','D']]
#product 사용
answer_10 =list( product(*total_list))
#결과
print(answer_10)
[(1, 'a', 'A'), (1, 'a', 'B'), (1, 'a', 'C'), (1, 'a', 'D'),
(1, 'b', 'A'), (1, 'b', 'B'), (1, 'b', 'C'), (1, 'b', 'D'),
(1, 'c', 'A'), (1, 'c', 'B'), (1, 'c', 'C'), (1, 'c', 'D'),
(1, 'd', 'A'), (1, 'd', 'B'), (1, 'd', 'C'), (1, 'd', 'D'),
(2, 'a', 'A'), (2, 'a', 'B'), (2, 'a', 'C'), (2, 'a', 'D'),
(2, 'b', 'A'), (2, 'b', 'B'), (2, 'b', 'C'), (2, 'b', 'D'),
(2, 'c', 'A'), (2, 'c', 'B'), (2, 'c', 'C'), (2, 'c', 'D'),
(2, 'd', 'A'), (2, 'd', 'B'), (2, 'd', 'C'), (2, 'd', 'D'),
(3, 'a', 'A'), (3, 'a', 'B'), (3, 'a', 'C'), (3, 'a', 'D'),
(3, 'b', 'A'), (3, 'b', 'B'), (3, 'b', 'C'), (3, 'b', 'D'),
(3, 'c', 'A'), (3, 'c', 'B'), (3, 'c', 'C'), (3, 'c', 'D'),
(3, 'd', 'A'), (3, 'd', 'B'), (3, 'd', 'C'), (3, 'd', 'D'),
(4, 'a', 'A'), (4, 'a', 'B'), (4, 'a', 'C'), (4, 'a', 'D'),
(4, 'b', 'A'), (4, 'b', 'B'), (4, 'b', 'C'), (4, 'b', 'D'),
(4, 'c', 'A'), (4, 'c', 'B'), (4, 'c', 'C'), (4, 'c', 'D'),
(4, 'd', 'A'), (4, 'd', 'B'), (4, 'd', 'C'), (4, 'd', 'D')]
#문자 리스트
txt_list = 'abcd'
answer_11 =list( product(txt_list,repeat=2) )
print(answer_11)
[('a', 'a'), ('a', 'b'), ('a', 'c'), ('a', 'd'),
('b', 'a'), ('b', 'b'), ('b', 'c'), ('b', 'd'),
('c', 'a'), ('c', 'b'), ('c', 'c'), ('c', 'd'),
('d', 'a'), ('d', 'b'), ('d', 'c'), ('d', 'd')]
두개 이상 값의 모든 조합을 만들어 주는 함수이다.
'Head > Code' 카테고리의 다른 글
[Code] - Python / rjust(), ljust() , center(), zfill() 사용법 (0) | 2020.09.01 |
---|---|
[Code] - Python / zip() 사용법 (0) | 2020.08.26 |
[Code] - Python / lambda, map, reduce, filter 사용법 (0) | 2020.08.25 |
[CODE] - ImageDataGenerator (0) | 2020.07.15 |
[code] - 카카오 압축 python (0) | 2020.05.07 |
Comments