ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • itertools - product(), permutations(), combinations()
    Python 2021. 9. 1. 09:35
    반응형

    product()

    1개 이상의 iterable 간에 곱집합을 생성한다.

    주어진 문자들로 구성된 길이 n의 모든 문자열을 만들어야 한다거나 할 때 사용하면 되겠다.

    from itertools import product
    
    
    data1 = 'AB'
    data2 = '가나'
    for elem in product(data1, data2):
        print(''.join(elem))
    ''' 출력결과
    A가
    A나
    B가
    B나
    '''
    
    # argument repeat에 반복할 숫자를 지정하면 이전의 iterable들을 숫자만큼 반복하여 곱집합을 생성한다.
    for elem in product(data1, repeat=3):
        print(''.join(elem))
    ''' 출력결과
    AAA
    AAB
    ABA
    ABB
    BAA
    BAB
    BBA
    BBB
    '''

    permutaions()

    iterable의 원소들을 사용하여 순열을 생성한다.

    from itertools import permutations
    
    
    data = 'ABCD'
    
    for elem in permutations(data, 3):
        print(elem)
    ''' 출력결과
    ('A', 'B', 'C')
    ('A', 'B', 'D')
    ('A', 'C', 'B')
    ('A', 'C', 'D')
    ('A', 'D', 'B')
    ('A', 'D', 'C')
    ('B', 'A', 'C')
    ('B', 'A', 'D')
    ('B', 'C', 'A')
    ('B', 'C', 'D')
    ('B', 'D', 'A')
    ('B', 'D', 'C')
    ('C', 'A', 'B')
    ('C', 'A', 'D')
    ('C', 'B', 'A')
    ('C', 'B', 'D')
    ('C', 'D', 'A')
    ('C', 'D', 'B')
    ('D', 'A', 'B')
    ('D', 'A', 'C')
    ('D', 'B', 'A')
    ('D', 'B', 'C')
    ('D', 'C', 'A')
    ('D', 'C', 'B')
    '''

    combinations()

    iterable의 원소를 사용하여 조합을 생성한다.

    from itertools import combinations
    
    data = 'ABCD'
    
    for elem in combinations(data, 3):
        print(elem)
    ''' 출력결과
    ('A', 'B', 'C')
    ('A', 'B', 'D')
    ('A', 'C', 'D')
    ('B', 'C', 'D')
    '''

    'Python' 카테고리의 다른 글

    빠른 리스트 객체 복사  (0) 2021.11.20
    Python 실행속도 개선 방법  (4) 2021.10.04
    all(), any() 함수  (0) 2021.08.31
    여러 iterable 객체를 묶어주는 zip 내장함수  (0) 2021.07.02
    for ~ else 문  (0) 2021.07.02

    댓글

Designed by Tistory.