[Python 내장 함수] enumerate() : for문 순서와 요소 값 동시에 반환받기

 

 


1. enumerate() 함수란?

 

파이썬에서 반복문(for)에서 순서와 요소를 동시에 반환 받아야 하는 경우가 있다. 이때 파이썬 내장 함수인 enumerate()을 사용하여 순서와 요소 값을 동시에 반환 받을 수 있다. enumerate를 이해하기 위해서는 리스트, 튜플 등과 같은 순회 가능한 객체에 대한 이해가 필요하다. 리스트와 튜플에 관련된 정보는 링크를 통해 확인할 수 있습니다. enumerate()는 리스트와 같은 순회 가능한 객체를 입력으로 받아 열거된 객체를 반환한다. 열거된 객체는 순서와 순서에 해당하는 요소가 쌍으로 묶인 값을 말한다.


2. enumerate() 사용법

 

enumerate() 함수는 아래와 같이 사용됩니다. interable 매개변수는 열거하고자 하는 객체(리스트, 튜플 등과 같은 순회 가능한 객체)이고, start 매개변수는 순서의 시작값을 지정하는 매개변수이다. start의 기본 값은 0이고 생략이 가능하다.

 

enumerate(iterable, start=0)

 

아래 코드는 enumerate() 함수를 이용해 fruits 리스트의 요소와 인덱스를 동시에 출력하는 예시 코드로 각각의 코드와 요소의 값이 동시에 출력된다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> for index, fruit in enumerate(fruits):
>>>     print(index, fruit)
0 사과
1 바나나
2 토마토
3 오렌지

 


2.1  enumerate() 예시

 

enumerate()는 for 문과 while 문과 같은 다른 반복 방법과는 달리, 순회 가능한 객체의 각 항목에 대한 인덱스를 자동으로 생성한다. 이는 객체를 순회하면서 인덱스를 수동으로 추적할 필요가 없다는 것을 의미한다.

 

아래 코드는 일반적인 for문과 range() 함수를 이용해 리스트의 인덱스와 요소에 접근하여 출력하는 예시 코드입니다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> for i in range(len(fruits)):
>>>     print(i, fruits[i])

# 결과:
# 0 사과
# 1 바나나
# 2 토마토
# 3 오렌지

 

아래 코드는 enumerate()를 이용해 리스트의 인덱스와 요소에 접근하고 2의 배수에 해당하는 인덱스 요소만 출력하는 예시 코드입니다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> for index, fruit in enumerate(fruits):
>>>     if index % 2 == 0:
>>>         print(index, fruit)

# 결과:
# 0 사과
# 2 토마토

 

 

아래 코드는 리스트 축약 구문과 함께 사용하는 예제로 enumerate()를 이용해 리스트의 인덱스와 요소에 접근하고 2의 배수에 해당하는 인덱스 요소를 even_fruits 리스트에 담아 출력하는 코드입니다. 파이썬 축약 구문에 대한 자세한 정보는 링크를 통해 확인 할 수 있습니다.

 

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> even_fruits = [fruit for index, fruit in enumerate(fruits) if index % 2 == 0]
>>> print(even_fruits)

# 결과:
# ['사과', '토마토']

 



3. enumerate() 연습 문제

문제 1

 

다음 리스트를 순회하여 각 항목의 인덱스와 해당 항목을 출력하세요.

 

더보기

##문제확인

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> for index, fruit in enumerate(fruits):
>>>     print(index, fruit)

 


문제 2

 

다음 리스트를 순회하여 인덱스가 짝수인 항목의 인덱스와 해당 항목을 출력하세요.

 

더보기

##문제확인

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> for index, fruit in enumerate(fruits):
>>>     if index % 2 == 0:
>>>         print(index, fruit)

 


문제 3

 

다음 리스트를 순회하여 인덱스가 짝수인 항목만 포함하는 새 리스트를 만드세요.

 

더보기

##문제확인

>>> fruits = ['사과', '바나나', '토마토', '오렌지']
>>> even_fruits = [fruit for index, fruit in enumerate(fruits) if index % 2 == 0]
>>> print(even_fruits)

 


문제 4

 

다음 딕셔너리를 순회하여 각 항목의 키와 값을 출력하세요.

 

더보기

##문제확인

>>> person = {'name': '홍길동', 'age': 30, 'address': '서울시'}
>>> for key, value in person.items():
>>>     print(key, value)

 


문제 5

 

다음 딕셔너리를 순회하여 키가 짝수인 항목의 키와 값을 출력하세요.

 

더보기

##문제확인

>>> person = {'name': '홍길동', 'age': 30, 'address': '서울시'}
>>> for index, (key, value) in enumerate(person.items()):
>>>     if index % 2 == 0:
>>>         print(key, value)