나의 지식 보관소
파이썬 내장 함수 Enumerate, Zip 본문
Enumerate
파이썬에는 enumerate() 라는 내장함수가 존재한다. 이 함수는 매개변수로 iterable한 데이터를 받는데, 이 enumerate() 함수에 의해 반환된 iterator의 __next__() 메서드는 기본적으로 0부터 시작하는 카운트와 iterable 객체를 이터레이션해서 얻어지는 값을 포함하는 튜플을 돌려준다.
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
Zip
zip() 함수는 iterable한 객체를 가변인자로 받는다. 하는 일은 한마디로 전달 받은 이터러블값들을 병렬적으로 추출해 튜플로 반환하는 것, 다른말로 zip()에 의해 반환된 i번째 튜플은 전달된 각 iterable의 i번째 요소를 포함하는 튜플이된다.
iterator은 가장 짧은 iterable이 소모되면 멈추게 된다. 그러므로 길이가 맞지 않는 iterable들로 zip() 함수를 사용하는것은 더 긴 iterable들의 값들에 신경쓰지 않는 경우로 제한하여야한다. 단 그 값들이 중요하다면 itertool.zip_longest()를 사용하여 해결할 수 있다.
a = [1,2,3,4,5]
b = ['a','b','c','d','e']
print(*zip(a,b))
# (1, 'a') (2, 'b') (3, 'c') (4, 'd') (5, 'e')
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
Flask Quick Start / 플라스크 정리 (0) | 2021.09.22 |
---|---|
파이썬 함수 map(), functools.reduce() (1) | 2021.06.06 |
정적 메서드와 클래스 메서드 ( @staticmethod & @classmethod ) (0) | 2020.09.07 |
제너레이터 Generator / 제네레이터 표현식 Generator Expression (0) | 2020.09.06 |
리스트 컴프리헨션 (List Comprehension) (0) | 2020.09.05 |