파이썬의 내장 함수 중 하나이 enumerate
에 대해서 알아보겠습니다.
enumerate(반복가능한 객체, 시작 값(기본값 = 0))
열거 객체를 돌려줍니다. iterable 은 시퀀스, 이터레이터 또는 이터레이션을 지원하는 다른 객체여야 합니다. enumerate() 에 의해 반환된 이터레이터의 next() 메서드는 카운트 (기본값 0을 갖는 start 부터)와 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')]
즉, 인수로 반복가능한 객체를 주면 출력으로 0(시작 카운트) 부터 객체요소의 순서대로 지정된
카운트를 튜플의 형태로 반환합니다.
물론 시작 카운트는 사용자가 지정이 가능합니다.(기본값=0)
for문을 사용하면서 리스트를 인자로 주면서, 리스트의 인덱스가 필요한 경우가 있습니다.
# enumerator 미사용
cnt = 0
for i in list :
i = cnt
cnt = cnt + 1
이렇게 되어있는 구문을
# enumerator 사용
for i,j in enumerate(list) :
i = j
다음과 같이하면 별도의 변수를 카운팅하지 않아도 해당 list 요소의 index값 처럼 사용할 수 있습니다.
헿