본문 바로가기
카테고리 없음

[Python] enumerate 함수 사용법, 동작 원리 및 특징 (예제 포함)

by 도토리묵 :D 2025. 2. 25.

오늘은 파이썬에 항상 등장하는 enumerate 이라는 유용한 함수에 대해 알아보겠습니다.

 

1. enumerate 함수란?

Python에서 enumerate() 함수는 반복 가능한(iterable) 객체를 다룰 때, 인덱스와 요소를 함께 가져올 수 있도록 도와주는 내장 함수입니다. 일반적인 for 반복문을 사용할 때 인덱스를 따로 관리하지 않아도 되기 때문에 코드가 깔끔해지고 가독성이 향상됩니다.



 

2. enumerate 함수 사용법

(1) 기본 문법

enumerate() 함수는 다음과 같은 형식으로 사용됩니다:

enumerate(iterable, start=0)
  • iterable : 리스트, 튜플, 문자열 등 반복 가능한 객체
  • start : 인덱스 시작 값 (기본값은 0)

(2) 기본 사용 예제

fruits = ["apple", "banana", "cherry"]

for index, fruit in enumerate(fruits):
    print(index, fruit)

출력:

0 apple
1 banana
2 cherry

위 예제에서 enumerate()를 사용하여 각 요소의 인덱스와 값을 함께 출력할 수 있습니다.



 

3. enumerate 함수의 동작 원리

Python에서 enumerate() 함수는 이터레이터(iterator) 객체를 반환하며, 내부적으로 zip()과 같은 방식으로 작동합니다. 이를 next() 함수를 사용하여 확인해 볼 수 있습니다.

numbers = [10, 20, 30]
enum_obj = enumerate(numbers)
print(next(enum_obj))  # (0, 10)
print(next(enum_obj))  # (1, 20)
print(next(enum_obj))  # (2, 30)

 

💡 enumerate()는 반복할 때마다 (index, value) 튜플을 반환하는 구조로 되어 있습니다.



 

4. enumerate의 다양한 활용 예제

 

(1) start 값 변경하기

colors = ["red", "green", "blue"]

for index, color in enumerate(colors, start=1):
    print(index, color)

출력:

1 red
2 green
3 blue

start=1을 설정하면 인덱스가 0이 아닌 1부터 시작합니다.

 

 

 

(2) 리스트 내포(list comprehension)와 함께 사용하기

names = ["Alice", "Bob", "Charlie"]
indexed_names = [(i, name) for i, name in enumerate(names)]
print(indexed_names)

출력:

[(0, 'Alice'), (1, 'Bob'), (2, 'Charlie')]

 

 

(3) 딕셔너리 변환

items = ["Pen", "Notebook", "Eraser"]
item_dict = dict(enumerate(items, start=1))
print(item_dict)

출력:

{1: 'Pen', 2: 'Notebook', 3: 'Eraser'}

💡 enumerate()를 활용하면 리스트를 쉽게 딕셔너리로 변환할 수도 있습니다.

 

(4) 인덱스가 홀수인 요소만 출력하기

words = ["one", "two", "three", "four"]

for index, word in enumerate(words):
    if index % 2 == 1:
        print(index, word)

출력:

1 two
3 four

💡 enumerate()를 활용하면 특정 인덱스 조건을 걸어 원하는 요소만 추출할 수도 있습니다.

 


5. enumerate 함수의 특징

 가독성 향상: 별도로 인덱스 변수를 선언할 필요가 없어 코드가 깔끔해집니다.
 튜플 반환: (index, value) 형태의 튜플을 반환하므로 다양한 활용이 가능합니다.
 반복문과 함께 사용: for 문에서 특히 유용하며, 리스트 내포와 조합하면 더욱 강력합니다.
 start 값 설정 가능: 기본적으로 0부터 시작하지만 원하는 숫자로 조정할 수 있습니다.


6. 마무리

이번 글에서는 enumerate() 함수의 사용법과 특징에 대해 살펴보았습니다.

enumerate 함수에 대해 핵심만 정리해보자면 아래와 같습니다.

 

 enumerate()를 사용하면 반복문에서 인덱스를 따로 관리할 필요가 없음 

 (index, value) 형태로 데이터를 다룰 수 있어 리스트, 튜플, 딕셔너리 변환 등에 활용 가능 

 start 값을 조정하여 1부터 시작하는 번호를 쉽게 만들 수 있음

 

Python에서 enumerate()는 매우 유용한 내장 함수입니다. 잘 활용하면 코드 가독성도 좋아지며 부수적인 기능을 유용하게 사용할 수 있습니다.

 

혹시 내용중에 이해가 안되시거나 추가로 궁금한 부분 있으면 댓글로 언제든지 피드백 주세요! ㅎㅎ

댓글