종종 리스트를 순회하거나 리스트의 현재 아이템의 인덱스를 알고 싶은 경우가 있다. 이 경우에 range를 사용할 수도 있지만 파이썬에서는 더욱 간편한 enumerate를 제공한다.

range를 사용하는 예제

for i in range(len(flavor_list)):
    flavor = flavor_list[i]
    print("%d: %s" % (i + 1, flavor))
  • 위의 코드는 세련되지 못한 모습임
  • enumerate를 이용하면 훨씬 간편

enumerate란?

  • 지연 제너레이터(lazy generator)로 이터레이터를 감싸안음
  • 이 제너레이터는 루프 인덱스와 다음 값을 한 쌍으로 가져와 넘겨줌
  • enumerate 예제
for i, flavor in enumerate(flavor_list)
    print("%d: %s" % (i + 1, flavor))
>>>
1: vanilla
2: chocolate
3: pecan
4: strawberry
  • enumerate로 세기 시작할 숫자를 지정할 수도 있음
for i, flavor in enumerate(flavor_list, 1)
    print("%d: %s" % (i, flavor))
>>>
1: vanilla
2: chocolate
3: pecan
4: strawberry

Go back to the List of Studies