[파이썬] enumerate 함수 설명 및 for문과의 차이점

2024. 5. 15. 18:59·Python

1. enumerate() 함수 정의

파이썬의 enumerate() 함수는 반복 가능한(iterable) 리스트, 문자열 등을 입력으로 받아, 각 요소를 인덱스와 함께 반환하는 열거 객체를 생성합니다. 각 요소에 대해 순차적으로 인덱스를 부여하여, for문(루프) 처리 시 요소의 위치 정보를 함께 처리할 수 있게 도와줍니다.

2. enumerate() 함수의 장점

  • 가독성 향상: enumerate()를 사용하면, 요소와 인덱스를 동시에 얻을 수 있어 코드의 명확성이 높아집니다.
  • 효율적인 루프 처리: 인덱스와 요소를 동시에 사용해야 할 경우, 코드를 간결하게 작성할 수 있습니다.
  • 직관적인 로직 구현: 데이터의 순서와 값을 동시에 고려해야 하는 상황에서 유용합니다.
  • 유연성: 시작 인덱스를 조정할 수 있는 두 번째 매개변수를 제공합니다.

3. enumerate() 함수 예시

3.1 예시 1 - 리스트의 요소와 인덱스 출력

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

Index 0: apple
Index 1: banana
Index 2: cherry

3.2 예시 2 -  시작 인덱스 조정 

colors = ["red", "green", "blue"]
for index, color in enumerate(colors, start=1):
    print(f"Color {index}: {color}")
    
Color 1: red
Color 2: green
Color 3: blue

3.3 예시 3 -  사용자 입력 리스트와 인덱스 출력

inputs = ["input1", "input2", "input3"]
for index, input in enumerate(inputs):
    print(f"Input {index}: {input}")

Input 0: input1
Input 1: input2
Input 2: input3

3.4 예시 4 -  인덱스를 사용한 조건부 출력

numbers = [10, 20, 30, 40, 50]
for index, number in enumerate(numbers):
    if index % 2 == 0:
        print(f"Index {index}는 짝수이고 숫자는 {number} 입니다.")

Index 0는 짝수이고 숫자는 10 입니다.
Index 2는 짝수이고 숫자는 30 입니다.
Index 4는 짝수이고 숫자는 50 입니다.

3.5 예시 5 -  데이터 튜플 리스트의 인덱스 사용

data_list = [("Alice", 25), ("Bob", 30), ("Cathy", 22)]
for index, (name, age) in enumerate(data_list):
    print(f"{name}는 {index}에 있으며 나이는 {age}살 입니다.")

Alice는 0에 있으며 나이는 25살 입니다. 
Bob는 1에 있으며 나이는 30살 입니다.
Cathy는 2에 있으며 나이는 22살 입니다.

 

4. enumerate()와 for문의 차이점

데이터 프레임을 순회할 때 for문만 사용하면 각 행의 데이터에 직접 접근할 수 있지만, enumerate()를 사용하면 각 행의 인덱스와 함께 데이터에 접근할 수 있습니다. 이를 통해 더 명확하게 각 행의 위치를 알 수 있으며, 인덱스를 활용한 추가적인 조작이 가능해집니다.

for문

  • for문은 반복 가능한 객체(리스트, 문자열, 딕셔너리의 키 등)를 순회하며 각 요소에 대해 일련의 작업을 수행합니다. for문 자체는 현재 처리하고 있는 요소의 인덱스를 직접적으로 제공하지 않습니다.

enumerate()

  • enumerate() 함수는 for문과 함께 사용되어 반복 중인 요소의 인덱스와 값을 함께 제공합니다. 이 함수는 반복 중인 요소의 위치 정보가 필요할 때 유용하게 사용됩니다.

4. 1 예시 - for문

import pandas as pd

data = pd.DataFrame({
    '이름': ['Alice', 'Bob', 'Cathy'],
    '나이': [25, 30, 22],
    '도시': ['New York', 'Los Angeles', 'Chicago']
})

for row in data.itertuples():
    print(f"{row.이름}는 {row.나이}살이며, {row.도시}에 삽니다.")

Alice는 25살이며, New York에 삽니다.
Bob는 30살이며, Los Angeles에 삽니다.
Cathy는 22살이며, Chicago에 삽니다.

4. 2 예시 - enumerate()

import pandas as pd

data = pd.DataFrame({
    '이름': ['Alice', 'Bob', 'Cathy'],
    '나이': [25, 30, 22],
    '도시': ['New York', 'Los Angeles', 'Chicago']
})

for index, row in enumerate(data.itertuples(), start=1):
    print(f"{index}번째 사람: {row.이름}는 {row.나이}살이며, {row.도시}에 삽니다.")

1번째 사람: Alice는 25살이며, New York에 삽니다.
2번째 사람: Bob는 30살이며, Los Angeles에 삽니다.
3번째 사람: Cathy는 22살이며, Chicago에 삽니다.

위 예시에서 볼 수 있듯이, for문만 사용하는 경우에는 각 행의 데이터를 출력하지만, enumerate()와 함께 사용할 경우 각 행의 인덱스를 추가로 출력할 수 있습니다. 이는 데이터 처리 과정에서 특정 조건에 따라 행을 선택하거나 추가적인 정보를 제공할 때 매우 유용합니다. 예를 들어, 특정 번째의 데이터만 처리하고 싶거나, 데이터의 순서를 기록하고 싶을 때 enumerate() 함수가 큰 도움이 됩니다.

좀 더 자세하게 알아가고 싶으신 분들은 공식 홈페이지를 참고해 주세요. 공식 홈페이지 enumerate() 함수

 

저작자표시 비영리 변경금지 (새창열림)
'Python' 카테고리의 다른 글
  • [파이썬] map() 함수 정의 및 사용 방법
  • [파이썬] for, apply(람다)의 차이점
  • [파이썬] for문 이점 및 사용방법 (예시)
  • [Python] 파이썬 Collections 모듈을 활용한 데이터 관리 효율화
hyunicecream
hyunicecream
안녕하세요. 여러가지 정보를 통해 조금이나마 도움이 되고자 시작하게 되었습니다.
  • hyunicecream
    Café
    hyunicecream
  • 홈
  • 포스팅 카테고리

    • 분류 전체보기
      • 생성형 AI
        • ChatGPT
        • Claude AI
        • MS Copilot
        • Perplexity
        • 생성형 AI 정보
        • 프롬프트 작성 가이드
        • AI 활용기
      • Notion
      • 업무 생산성
      • Python
        • pandas
      • 머신러닝
      • 딥러닝
      • Terminal
      • SQL
        • Postgre SQL
      • 여행정보
        • 국내여행
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hyunicecream
[파이썬] enumerate 함수 설명 및 for문과의 차이점
상단으로

티스토리툴바