Python

[Python] enumerate()

주댕이 2024. 11. 14. 17:24

# enumeratre()

  • 반복문에서 인덱스와 원소를 함께 다룰 수 있도록 도와주는 함수
  • 반복 가능한 객체(예: 리스트, 튜플, 문자열 등)을 입력으로 받아, 해당 객체의 각 원소에 대한 인덱스와 원소를 튜플 형태로 반환한다.
  • 주로 for 루프와 함께 사용하여 코드의 가독성을 높이고, 추가 변수 없이도 인덱스를 활용할 수 있게 한다.

 

# 기본 문법

enumerate(iterable, start=0)

 

  • iterable: 인덱스와 함께 열거할 반복 가능한 객체
  • start: 시작 인덱스 번호. 기본값은 0이며, 다른 숫자로 설정하여 시작 인덱스를 변경할 수 있다.

## 예제

  • 코드
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(index, fruit)

 

  • 출력 결과
0 apple
1 banana
2 cherry

 

 

# 인덱스 시작 번호 변경하기

  • start 인자를 사용하여, 인덱스를 원하는 숫자부터 시작할 수 있다.
  • 코드
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1):
    print(index, fruit)
  • 출력 결과
1 apple
2 banana
3 cherry

 

 

# enumerate() 활용 예시

## 리스트나 튜플의 인덱스와 값을 동시에 출력하기

  • enumerate()를 사용하면 반복문에서 인덱스를 따로 관리할 필요 없이, 깔끔하게 인덱스와 원소를 동시에 출력할 수 있다.
  • 코드
names = ['Alice', 'Bob', 'Charlie']
for i, name in enumerate(names):
    print(f"{i}: {name}")
  • 출력 결과
0: Alice
1: Bob
2: Charlie

 

## 리스트 컴프리헨션과 함께 사용하기

  • enumerate()는 리스트 컴프리헨션(list comprehension)에서도 활용이 가능하여, 간단하게 특정 인덱스와 값을 조합한 리스트를 생성할 수 있다.
  • 코드
squares = [f"Index {i}: {i**2}" for i, _ in enumerate(range(10), start=1)]
print(squares)
  • 출력 결과
['Index 1: 1', 'Index 2: 4', 'Index 3: 9', 'Index 4: 16', 'Index 5: 25', 'Index 6: 36', 'Index 7: 49', 'Index 8: 64', 'Index 9: 81', 'Index 10: 100']

 

## 조건에 맞는 인덱스 찾기

  • enumerate()를 활용하여 조건에 맞는 인덱스를 찾을 수 있다.
  • 코드
numbers = [10, 20, 30, 40, 50]
for idx, num in enumerate(numbers):
    if num == 30:
        print(f"30의 인덱스는 {idx}입니다.")
  • 출력 결과
30의 인덱스는 2입니다.

 

728x90