Python

[Python] enumerate 함수

비번변경 2023. 8. 24. 23:27

개요

보통 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