Dylan_Han
IT Blog
Dylan_Han
전체 방문자
오늘
어제
  • 전체 (19)
    • Front-End (8)
      • HTML (8)
    • SW (11)
      • Python 기초 (7)
      • Python 심화 (4)

블로그 메뉴

  • Github
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dylan_Han

IT Blog

SW/Python 심화

[함수] enumerate()

2023. 9. 28. 03:04

1. enumerate() 란?

  • enumerate() 함수는 파이썬에서 사용되는 내장 함수 중 하나로, 순회 가능한(iterable) 객체(리스트, 튜플, 문자열 등)를 순회하면서 각 요소의 인덱스와 값을 함께 추출하는 데 사용됩니다. 이 함수는 반복문을 사용할 때 인덱스를 추적하거나 요소의 위치를 파악하는 데 특히 유용합니다.

 


 

2. 주요 특징과 사용법

  • 다음은 enumerate()의 주요 특징과 사용법에 대한 설명입니다.

 


 

2-1. 인덱스와 요소를 함께 반환

  • enumerate() 함수는 순회 가능한 객체를 순회하면서 각 요소의 인덱스와 값을 튜플 형태로 반환합니다.

 

2-2. 인덱스 시작값 설정

  • 두 번째 매개변수 start를 사용하여 인덱스의 시작값을 지정할 수 있으며, 기본값은 0입니다.

 

2-3. 함수의 기본 구문

  • enumerate() 함수의 기본 구문은 다음과 같습니다.
enumerate(iterable, start=0)
  • iterable: 인덱스와 요소를 추출하려는 순회 가능한 객체입니다.
  • start (선택 사항): 인덱스 시작값을 지정합니다. 기본값은 0입니다.

 

2-4. 예제

  • 아래는 enumerate() 함수의 사용 예제입니다
fruits = ['apple', 'banana', 'cherry']

# enumerate()를 사용하여 리스트 순회
for index, fruit in enumerate(fruits):
    print(f'Index {index}: {fruit}')
Index 0: apple
Index 1: banana
Index 2: cherry

 


 

3. enumerate()와 index()의 성능 차이

  • 아래에서는 두 자료 구조 간의 주요 성능 차이를 설명합니다.

 


 

3-1. enumerate() 함수

  • enumerate() 함수는 순회 가능한(iterable) 객체를 순회하면서 인덱스와 값을 함께 반환합니다.
  • 이 함수는 반복문과 함께 사용될 때 주로 사용됩니다.
  • 성능 면에서는 순회 자체가 반드시 필요하기 때문에 enumerate() 함수 자체의 성능은 좋습니다.
  • 리스트의 각 요소에 접근할 때 enumerate()를 사용하면 성능상 이점이 있을 수 있습니다. 이는 리스트의 크기와 순회하는 횟수에 따라 달라집니다.

 

3-2. index() 함수

  • index() 함수는 순회 가능한 객체에서 특정 요소의 인덱스를 검색하는 함수입니다.
  • 이 함수는 요소를 찾기 위해 순회하는 것이 아니라, 요소가 나타나는 위치를 찾아내는 것이 주요 목적입니다.
  • 성능 면에서는 index() 함수가 특정 요소를 찾을 때 선형 검색을 수행하기 때문에 큰 리스트에서 요소를 찾는 경우 성능 저하가 발생할 수 있습니다.

 

3-3. 성능 비교

  • 성능은 상황에 따라 다르며, 다음과 같은 요인에 따라 달라질 수 있습니다.
  • 리스트의 크기: 리스트가 크면 index() 함수의 성능이 저하될 수 있습니다.
  • 요소의 위치: 찾으려는 요소가 리스트의 처음에 나타나는 경우 index() 함수가 빠르게 작동할 수 있습니다.
  • 순회 빈도: 여러 번 동일한 요소를 찾아야 하는 경우 index() 함수를 여러 번 호출하므로 성능 저하 가능성이 있습니다.
  • 일반적으로 요소를 찾는 경우에는 index() 함수를 사용하고, 요소를 찾은 후에 반복 작업을 수행해야 하는 경우에는 enumerate()와 반복문을 함께 사용하는 것이 효율적일 수 있습니다.

 


 

4. 결론

  • enumerate() 함수를 사용하면 코드를 간결하게 유지하면서 인덱스와 요소를 효과적으로 처리할 수 있으며, 다양한 상황에서 유용하게 활용할 수 있습니다.
    'SW/Python 심화' 카테고리의 다른 글
    • [TIP] 리스트 요소 한번에 출력하기
    • [자료구조] deque (collections 모듈)
    • [Fast I/O] sys.stdin.readline() 함수
    Dylan_Han
    Dylan_Han

    티스토리툴바