파이썬 알고리즘

library "itertools" 유용한 함수 모음

나미-IT 2021. 2. 18. 20:31

1. 무한 이터레이터

 count(start, [step])

    예) count(10,2)   -> 10 12 14 16 , .... (무한)

 cycle( t ) 

    예) cycle("ABCD")  -> A B C D A B C D .... (무한)

 repeat( elem, [n] )

    elem을 n회 반복 

    예) repeat(10,3)   -> 10 10 10 

 

2. 가장 짧은 입력 시퀀스에서 종료되는 이터레이터

 accumulate( it , [func] ) 

    앞에서부터 func 한 결과를 넣어준다 

    예) accumulate([1,2,3],operations.add)  -> 1  3  6

 chain( it1, it2) 

    내용물을 이어서 붙여준다

    예) chain('abc', 'def')   -> a b c d e f 

 chain.from_iterable( it ) 

    iterable 안에 iterable 

    예) chain.from_iterable(['abc','def'])  -> a b c d e f

 

 

3. 조합형 이터레이터

 product( p , q , .. , [repeat = 1]) 

    데카르트 곱(cartesian product) 

    예) product( 'ABCD', 'ABCD')   -> AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD

 

permutations(p, n)

    순열

    예) permutations([1,2,3],2)   -> (1,2) (1,3) (2,1) (2,3) (3,1) (3,2)

 

combinations(p ,n)

    조합

    예) combinations([1,2,3],2)  -> (1,2)  (1,3)  (2,3)

 

combinations_with_replacement(p,n)

     반복되는 요소 있는 조합

     예) combinations_with_replacement([1,2,3],2) -> (1,1) (1,2) (1,3) (2,2) (2,3) (3,3)