본문 바로가기

Python

Python itertools

Python itertools

공식문서를 참조했다.

itertools는 반복 행위가 필요한 부분을 빠르고, 효율적으로 구현할 수 있도록 한다. operator 모듈과도 궁합이 좋다.

Cheat Sheet


공식 문서에 올라가 있는 것을 전부 나열하는 것은 의미가 없으니 , 예시로 필요한 것만 빼서 정리.

cycle([1,2,3])  # 1 2 3 1 2 3 1 2 3 ...
repeat(10, 3)  # 10 10 10 ...
chain('ABC', 'DEF')  # A B C D E F
compress('ABCDEF', [1,0,1,0,1,1])  # A C E F
zip_longest('ABCD', 'xy', fillvalue='-')  # Ax By C- D-
tee([1,2,3])  # [1,2,3], [1,2,3]
groupby()
[k for k, g in groupby('AAAABBBCCDAABBB')]  # A B C D A B
[list(g) for k, g in groupby('AAAABBBCCD')]  # AAAA BBB CC D

product('ABCD', repeat=2)  # AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
permutations('ABCD', 2)  # AB AC AD BA BC BD CA CB CD DA DB DC
combinations('ABCD', 2)  # AB AC AD BC BD CD

groupby()는 SQL의 GROUPBY절과는 약간 다름에 주의하자.
groupby()의 입력으로 들어가는 리스트는 미리 정렬되어 있어야 한다.

더 자세한 내용은 생략한다.

'Python' 카테고리의 다른 글

Python global variable  (0) 2016.02.10
Python argparse  (0) 2016.02.10
Python zip archive of a directory  (0) 2016.02.09
Python JSON  (0) 2016.02.09
python multiprocessing  (0) 2016.02.09