개요
보통 Python에서 리스트에 대한 for문을 수행할 때는 아래와 같이 사용한다.
message = ['Continue', 'Switching Protocol', 'Processing', 'Early Hints']
for msg in message:
print(msg)
만약 index를 이용해 리스트에 저장된 원소를 접근해야 할 때는 다음과 같이 사용했었다.
message = ['Continue', 'Switching Protocol', 'Processing', 'Early Hints']
for i in range(len(message)):
print(i, message[i])
다만 range를 이용해 접근하는 방식은 Pythonic 하지 않은 방법이라고 한다. 이 글에서는 Pythonic 하게 리스트의 인덱스와 원소를 함께 사용할 수 있도록 해주는 enumerate 함수에 대해 적어둔다.
enumerate
enumerate 함수는 Python 내장함수 중 하나로 반복 가능한 객체(iterable)를 입력으로 받아 인덱스와 그 원소로 이루어진 enumerate 객체를 반환한다.
리스트 message에 enumerate 함수를 사용하면 다음과 같다.
message = ['Continue', 'Switching Protocol', 'Processing', 'Early Hints']
for e in enumerate(message):
print(e)
반복문 내 e는 인덱스와 원소로 구성된 tuple 형태의 데이터처럼 보인다. 따라서 인덱스와 원소를 각각의 변수로 접근하고 싶을 때는 아래와 같이 사용할 수 있다.
참고 문서
https://www.daleseo.com/python-enumerate/
https://www.programiz.com/python-programming/methods/built-in/enumerate