본문 바로가기

프로그래밍 언어/python

파이썬에서 range 대신에 enumerate 사용하기

파이썬에서 range 대신에 enumerate 사용하기

파이썬에서 반복문을 작성할 때 range를 사용하는 것이 일반적이지만, 경우에 따라 enumerate 함수를 사용하는 것이 더 효율적일 수 있습니다. 이 글에서는 enumerate의 사용법과 range 대신 enumerate를 사용해야 하는 경우를 예제와 함께 살펴보겠습니다.

enumerate란?

enumerate 함수는 반복 가능한(iterable) 객체를 인덱스와 함께 순회할 수 있게 해주는 내장 함수입니다. enumerate를 사용하면, 현재 요소의 인덱스와 값을 동시에 얻을 수 있습니다.

range vs. enumerate

range를 사용하면 인덱스를 기반으로 반복문을 실행할 수 있습니다. 그러나 enumerate를 사용하면, 인덱스와 해당 인덱스의 요소를 동시에 얻을 수 있어 코드가 더 간결하고 이해하기 쉬워집니다.

예제: range 사용

colors = ['red', 'green', 'blue']
for i in range(len(colors)):
    print(i, colors[i])

이 코드는 colors 리스트의 인덱스와 값을 출력합니다. 하지만 range와 len을 함께 사용해야 하기 때문에 다소 복잡해 보입니다.

예제: enumerate 사용

colors = ['red', 'green', 'blue']
for index, color in enumerate(colors):
    print(index, color)

enumerate를 사용하면 같은 결과를 훨씬 간결하게 얻을 수 있습니다. 이 방법은 인

덱스와 요소를 동시에 얻기 위해 추가적인 인덱싱이 필요 없기 때문에 코드의 가독성이 크게 향상됩니다.

enumerate의 장점

  1. 가독성: 코드가 더 간결하고 읽기 쉽습니다.
  2. 효율성: 추가적인 인덱싱 연산 없이 인덱스와 요소에 바로 접근할 수 있습니다.
  3. 유연성: 시작 인덱스를 변경할 수 있습니다 (enumerate(iterable, start=1) 처럼 시작 인덱스를 지정).

결론

enumerate 함수는 파이썬에서 반복문을 작성할 때 range보다 더 간결하고 효율적인 방법을 제공합니다. 특히, 리스트나 튜플 같은 시퀀스의 요소와 그 인덱스를 동시에 처리해야 할 때 enumerate의 사용을 고려해 보세요.