본문 바로가기

진리는어디에/Python

[Python] enumerate

이번 강좌에서는 파이썬에서 iterable 객체를 순회 할 때 자주 사용되는 enumerate 에 대해 살펴 보겠다. enumerator는 튜플에 대한 개념이 있어야 하므로 혹시 튜플이 낮설다면 [여기]를 한번 살펴 보고 돌아 오면 좋다.

enumerate 란?

  • 반복자(iterator) 처럼 동작하는 객체(반복자에 대한 설명은 [여기]에 정리 되어 있다).
  • iterable 객체를 인자로 받아서 생성
  • 순회시 "(index, 요소)" 형태의 튜플(tuple) 객체를 반환

enumerate는 반복자 처럼 동작하는 객체로써 특징으로 각 반복시 요소와 함께 인덱스도 리턴한다. 아래 예제와 같이 리스트를 순회하며 인덱스가 필요한 경우, 인덱스를 저장하기 위해 따로 변수를 선언하는 복잡한 코드 대신 enumerate를 이용해 간단히 만들 수 있다.

fruits = ['apple', 'orange', 'strawberry']

# 단순 리스트만 사용한 예제
index = 0
for itr in fruits :
    fruit = itr
    print(f'{index}:{fruit}', end=' ')
    index += 1
print()

# enumerate
for itr in enumerate(fruits) :
    # itr = (index, 요소)
    index = itr[0]
    fruit = itr[1]
    print(f'{index}:{fruit}', end=' ')
print()
    
# enumerate + unpacking
for index, fruit in enumerate(fruits) :
    print(f'{index}:{fruit}', end=' ')

맨위의 단순 리스트를 이용하는 예제와 비교하여 가장 아래 enumerate 와 unpacking 까지 이용한 예제를 살펴 보면 코드가 꽤 간결해지고 보기 편해졌다.

마치며

이상으로 반복자에 관련된 강의를 마치고 다음 강의 부터 파이썬의 제너레이터에 대해 알아 보도록 하겠다.

부록 1. 같이 보면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!