배우고 느끼고 생각하고 사랑하라

그리고 즐겨라

코딩 잡동사니/코딩 꿀팁

[Python 꿀팁] itertools로 조합(combination) 구하기

gyubinc 2023. 1. 26. 00:45

[1,3,5,7]라는 데이터가 주어졌을 때 그 중 조합 4C3 (4 combination 3) 을 모두 구하려면 어떻게 코드를 작성할 수 있을까

아무런 모듈 없이 직관적으로 떠오르는 코드는 아래와 같다.

a = [1,3,5,7]
for i in range(len(a)):
    for j in range(len(a)):
        for k in range(len(a)):
            if i == j or i == k or j == k or i>j or j>k:
                pass
            else:
                print([a[i],a[j],a[k]])

코드도 지저분하고 3중 for문이 사용되어 굉장히 오랜 시간을 잡아먹을듯하다

 

아래는 그럴 때 사용할 수 있는 간단한 python built-in 모듈이다.

 

from itertools import combinations
a = [1,3,5,7]
for i in combinations(a,3):
    print(list(i))