본문 바로가기

프로그래밍/[Python] 파이썬

[Python] 파이썬 enumerate() 함수 사용법

by GenieIT* 2024. 9. 26.

728x90
728x90

 

0. 요약

  • enumerate()는 인덱스와 값을 동시에 가져올 때 유용합니다.
  • for 루프에서 리스트의 인덱스를 따로 관리하지 않아도 되는 장점이 있습니다.

 

 

1. enumerate 함수란?

enumerate() 함수는 파이썬에서 리스트, 튜플, 문자열 등과 같은 이터러블(반복 가능한 객체)의 각 요소에 대해 인덱스와 해당 요소를 함께 반환해주는 함수입니다. 이를 통해 이터러블의 요소를 반복하면서 인덱스를 쉽게 추적할 수 있습니다.

 

2. 기본 구조

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

 

 

3. 기본 사용법

names = ['Alice', 'Bob', 'Charlie']

# enumerate로 리스트 요소와 인덱스를 동시에 출력
for index, name in enumerate(names):
    print(f"Index: {index}, Name: {name}")

'''
실행 결과
Index: 0, Name: Alice
Index: 1, Name: Bob
Index: 2, Name: Charlie
'''

 

4. 시작 인덱스 설정하기

  • enumerate 두번째 인자 값을 통해 인덱스 시작값을 설정할 수 있습니다.
# 인덱스를 1부터 시작
for index, name in enumerate(names, 1):
    print(f"Index: {index}, Name: {name}")

'''
실행 결과
Index: 1, Name: Alice
Index: 2, Name: Bob
Index: 3, Name: Charlie
'''

 

 

5. 문자열에 함수 사용

  • 문자열도 반복 가능한 객체이므로, enumerate()를 사용하여 각 문자의 인덱스와 함께 접근할 수 있습니다.
names = "python"

# enumerate로 문자와 인덱스를 동시에 출력
for index, name in enumerate(names):
    print(f"Index: {index}, Name: {name}")

'''
실행 결과
Index: 0, Name: p
Index: 1, Name: y
Index: 2, Name: t
Index: 3, Name: h
Index: 4, Name: o
Index: 5, Name: n
'''

 

6. 리스트 내포와 함께 사용

names = ['Alice', 'Bob', 'Charlie']

# 각 이름에 인덱스를 추가한 새로운 리스트 생성
indexed_names = [f"{index}: {name}" for index, name in enumerate(names, 1)]
print(indexed_names)

'''
실행 결과
['1: Alice', '2: Bob', '3: Charlie']
'''

 

 

7. 딕셔너리에서 사용

  • 딕셔너리의 키와 값을 enumerate()로 직접 사용할 수는 없지만, items()를 사용하여 키와 값의 쌍에 접근할 수 있습니다.
  • 딕셔너리 타입은 순서가 없는 자료 구조이기는 하나 파이썬 3.7 버전 이후로는 인덱스 번호가 동일하게 유지되도록 변경 되었습니다. 딕셔너리 자료형에 삽입된 순서를 기준으로 인덱스 번호를 만듭니다.
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 딕셔너리의 키, 값 쌍을 enumerate로 인덱스와 함께 출력
for index, (key, value) in enumerate(person.items()):
    print(f"Index: {index}, Key: {key}, Value: {value}")

'''
실행 결과
Index: 0, Key: name, Value: Alice
Index: 1, Key: age, Value: 25
Index: 2, Key: city, Value: New York
'''

 

 

 

728x90