코딩/파이썬

[Python] 파이썬 enumerate 함수로 For 문 돌리기

손느린 프로그래머 2023. 7. 31. 21:28
반응형

python을 이용해 for 루프를 돌릴 경우가 많습니다. 이 때 몇 회의 루프를 돌았는지, for 문 상에서 확인해야 되는 경우가 있는데요. enumerate는 이런 루프 횟수를 체크할 때 매우 유용한 함수이고, 매우 간결하기 때문에 진정 pythonic 한 함수이기도 합니다. 이번 글에서는 python enumerate 함수에 대해서 소개해 보겠습니다.

 

 

python enumerate로 for문 돌리기


1. enumerate 함수란?

  • enumerate으로 반복문에서 목록의 인덱스와 값을 동시에 가져올 수 있다.

파이썬은 많은 편리한 기능들을 내장 함수 형태로 제공하며, 이들 중 하나가 바로 enumerate입니다. enumerate는 '열거하다'라는 뜻이며, 이 함수를 사용하면 반복문을 사용하는 동안 목록의 인덱스와 값을 동시에 가져올 수 있습니다. 이 기능은 데이터를 처리하거나 반복 작업을 수행할 때 매우 유용합니다.

 

실제로 enumerate는 아래의 코드와 동일하게 동작합니다.

# Equivalent to:
def enumerate(iterable, start=0):
    n = start
    for elem in iterable:
        yield n, elem # index와 목록의 요소를 동시에 리턴한다.
        n += 1

 

자세한 사항은 아래 enumerate에 대한 python 공식 문서를 참고하십시요.

https://docs.python.org/3/library/functions.html#enumerate

 

Built-in Functions

The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...

docs.python.org

 


 

2. enumerate 활용 방법 & 예시

  • 인덱스와 값을 포함한 튜플을 반환하여 간결한 for문을 작성할 수 있다. 
  • "for i, ele in enumerate(mylist)" 형태로 인덱스와 값을 받을 수 있다.

기본적으로 enumerate 함수는 인덱스와 값을 포함하는 튜플을 반환합니다. 이를 이용하여 for 문을 사용할 때, 추가적인 변수를 선언하여 인덱스를 추적할 필요가 없습니다.

아래는 enumerate 함수를 활용하는 간단한 예시입니다:

fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits):
    print(f"과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다")
    
# 출력
#과일 리스트에서 0 인덱스 요소는 apple 이다
#과일 리스트에서 1 인덱스 요소는 banana 이다
#과일 리스트에서 2 인덱스 요소는 cherry 이다

 

3. range와 enumerate 비교

  • range를 이용해 동일하게 구현할 수 있으나, 가독성이 떨어 진다.

range 함수를 사용하여 for문을 작성하는 경우, 인덱스를 통해 리스트의 값을 얻을 수 있습니다. 그러나 이 방식은 가독성이 떨어지고 코드가 복잡해질 수 있습니다.

다음은 range 함수를 사용한 예시입니다:

fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
    print(f"과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다")

 

enumerate 함수를 사용하면 코드가 더욱 간결하고 가독성이 좋아집니다. 인덱스와 값을 한 번에 얻을 수 있어 코드를 더욱 직관적으로 만들어줍니다.

 

4. enumerate 사용 팁(시작 번호 변경 등)

  • start 인자를 사용하면, 시작 순서를 변경할 수 있다.

enumerate 함수는 선택적으로 'start' 인수를 받을 수 있습니다. 이 인수를 사용하면 인덱스의 시작 번호를 지정할 수 있습니다. 기본값은 0이지만, 다른 숫자를 지정하여 인덱스의 시작 값을 조정할 수 있습니다.

다음은 'start' 인수를 사용한 예시입니다.
이 코드를 실행하면, 인덱스가 1부터 시작하는 다음과 같은 결과를 얻을 수 있습니다:

# start 인수로 시작 숫자를 변경할 수 있다.
fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits, start=1):
    print(f"과일 리스트에서 {i} 인덱스 요소는 {fruit} 이다")
    
#출력
#과일 리스트에서 1 인덱스 요소는 apple 이다
#과일 리스트에서 2 인덱스 요소는 banana 이다
#과일 리스트에서 3 인덱스 요소는 cherry 이다

이상 enumerate 사용 팁이었습니다.

 

 

https://smart-worker.tistory.com/47

 

[Python]List Comprehension을 활용한 코드 최적화

이번에는 Python의 강력한 기능 중 하나인 리스트 컴프리헨션(List Comprehension)에 대해 알아보겠습니다. 초보자가 사용하기에는 문법이 약간 복잡하지만, 한 번 알면 이해하고 활용하는 데 큰 어려

smart-worker.tistory.com

 

 

 

 

https://smart-worker.tistory.com/49

 

[Python] 리스트와 튜플(tuple)의 차이점 이해하기

Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷

smart-worker.tistory.com

 

https://smart-worker.tistory.com/50

 

[Python]람다(lambda) 함수 이해하기

이 글에서는 Python 프로그래밍 언어에서 사용되는 람다(lambda) 함수에 대해 배울 것입니다. 초보자 분들도 쉽게 이해할 수 있도록 기본적인 개념부터 실제 사용 사례까지 자세히 설명하겠습니다.

smart-worker.tistory.com

 

반응형