ABOUT ME

Data Engineer를 꿈꾸는 개발자입니다.

Today
Yesterday
Total
  • [Python] - Permutation & Combination
    개발/Python 2022. 7. 27. 19:50

    Permutation

    • process of changing the linear order of an ordered set
    • support itertools
    • Permutations differ from combinations , which are selections of some members of a set regardless of order
    • set {1, 2, 3} -> (1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)

     

    Syntax

    permutations(iterable, r=None)
    from itertools import permutations
    
    list( permutations('ABC', 2) )
    > [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
    
    permutations(range(3))
    > [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]

     

    Combination

    • a combination is a selection of items from a set that has distinct members, such that the order of selection does not matter
    • support itertools
    • set {1, 2, 3} -> (1,2),(1,3),(2,3)

    Syntax

    combinations(iterable, r)
    from itertools import combinations
    
    list(combinations('ABCD', 2))
    > [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
    
    list(combinations(range(4), 3))
    > [(0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3)]

     

    Combinations_with_replacement

    • like a combinations but this case available copy data
    • set {1,2,3} -> (1,1), (1,2), (1,3), (2,1), (2,2),(2,3),(3,3)
    from itertools import combinations_with_replacement
    
    combinations_with_replacement(range(5),2)

    '개발 > Python' 카테고리의 다른 글

    댓글

Designed by Tistory.