파이썬 API 둘러보기

enumerate(), zip(), zip_longest()

enumerate(), zip(), zip_longest()

enumerate(iterable[, start]) -> iterator

가장 쉬운 예로, for문을 foreach문으로 바꿀 수 있다.

>>> list(enumerate(['a', 'b', 'c']))
[(0, 'a'), (1, 'b'), (2, 'c')]

>>> for index, value in enumerate(['a', 'b', 'c']):
...     print(index, value)    
0 a
1 b
2 c

 

zip(iter1 [,iter2 [...]]) -> zip object

길이는 가장 짧은 iterable 기준.

이제보니 zip() 이 필요한 경우는 map()으로 거의 다 될 것 같다;;

>>> zip('abc')
<zip object at 0x0304D170>

>>> list(zip('abc'))
[('a',), ('b',), ('c',)]

>>> list(zip('abc', 'ABCD'))
[('a', 'A'), ('b', 'B'), ('c', 'C')]

>>> lst = [0, 3, 10, 17]
>>> for n, m in zip(lst, lst[1:]):
    print(n-m)
    
-3
-7
-7

마지막은 제어 변수 없이 연속된 두 원소의 차를 구하는 예시다.

 

itertools.zip_longest()

zip()과 달리 가장 긴 iterable이 기준.

모자란 원소는 fillvalue로 채운다.

>>> import itertools
>>> list(itertools.zip_longest('abc', 'ABCDEF', fillvalue='X'))
[('a', 'A'), ('b', 'B'), ('c', 'C'), ('X', 'D'), ('X', 'E'), ('X', 'F')]

댓글

댓글 본문
작성자
비밀번호
버전 관리
장과장02
현재 버전
선택 버전
graphittie 자세히 보기