본문 바로가기
Python/python

파이썬 enumerate() 함수를 활용하여 리스트 순회 처리하기

by 노마드 산코디 2023. 10. 22.
728x90

안녕하세요. 오늘은 파이썬 enumerate() 함수에 대한 내용을 주제로 포스팅하려고 합니다. 이 함수는 파이썬 프로그래밍에서 중요한 역할을 하는데요, 파이썬의 순회 가능한(iterable) 객체를 다룰 때 유용하게 활용됩니다. enumerate() 함수를 통해 우리는 순회 중인 요소의 인덱스와 값을 동시에 처리하는 방법을 알아보도록 하겠습니다.

 

 

 

 


1. enumerate() 함수란?

파이썬의 enumerate() 함수는 주어진 순회 가능한(iterable) 객체(리스트, 튜플, 문자열 등)를 순회하면서 각 요소의 인덱스와 값을 함께 반환하는 함수입니다. 이 함수는 순회 중인 요소의 인덱스를 추적하거나 순회 중에 요소의 위치를 파악하는 데 유용하며, 주로 for 반복문과 함께 사용됩니다.


함수의 기본 구문

enumerate(iterable, start=0)

 

  • iterable
    순회 가능한 객체(리스트, 튜플, 문자열 등).
  • start (옵션)
    인덱스의 시작값을 지정하는 매개변수로, 기본값은 0입니다.


enumerate() 함수는 iterable 객체의 각 요소와 해당 요소의 인덱스를 튜플 형태로 반환합니다. 이러한 반환 값은 주로 for 반복문에서 사용되며, 다음과 같은 형태로 활용됩니다.

for index, value in enumerate(iterable):
    # 코드 작성




위와 같이 enumerate() 함수를 활용하면 순회 중인 요소의 인덱스와 값을 동시에 사용할 수 있으며, 이는 다양한 작업에 유용하게 활용됩니다.

 








2. enumerate() 함수의 시작 인덱스 설정

enumerate() 함수를 사용할 때 시작 인덱스를 설정하려면 start 매개변수를 활용하면 됩니다. start 매개변수는 인덱스의 시작값을 지정하는데 사용되며, 기본값은 0입니다.


예시 코드

my_list = ['apple', 'banana', 'cherry']

# 시작 인덱스를 1로 설정
for index, value in enumerate(my_list, start=1):
    print(f'Index {index}: {value}')


위의 코드에서는 enumerate() 함수에 start=1을 설정하여 인덱스의 시작 값을 1로 지정했습니다. 


실행 결과

Index 1: apple
Index 2: banana
Index 3: cherry



이렇게 시작 인덱스를 설정하면 원하는 범위의 인덱스를 사용하여 순회할 수 있으며, 종종 인덱스가 0부터 시작하지 않아야 하는 상황에서 유용하게 활용됩니다.

 

 

 

 


3. enumerate() 함수의 활용 예제



1. 리스트 요소와 인덱스 출력하기

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


위의 소스 코드는 enumerate() 함수를 사용하여 리스트 fruits를 순회하면서 각 요소와 해당 요소의 인덱스를 반환합니다.



2. 리스트에서 특정 값의 인덱스 찾기

fruits = ['apple', 'banana', 'cherry']
target = 'banana'
for index, fruit in enumerate(fruits):
    if fruit == target:
        print(f'{target} found at index {index}')


위의 소스 코드는 enumerate() 함수를 사용하여 리스트 fruits를 순회하면서 target 값과 일치하는 요소를 찾습니다. 발견하면 해당 요소의 인덱스를 출력합니다.




3. 문자열에서 단어와 인덱스 출력하기

text = "Python is a powerful programming language."
words = text.split()
for index, word in enumerate(words):
    print(f'Word "{word}" found at index {index}')


위의 소스 코드는 문자열 text를 공백으로 나눈 후, enumerate() 함수를 사용하여 단어 리스트를 순회하면서 각 단어와 해당 단어의 인덱스를 반환합니다.



4. 리스트에서 특정 범위의 요소 인덱싱

numbers = [10, 20, 30, 40, 50]
start_index = 2
end_index = 4
for index, value in enumerate(numbers[start_index:end_index + 1], start=start_index):
    print(f'Index {index}: {value}')


위의 소스 코드는 enumerate() 함수를 사용하여 리스트 numbers의 일부를 순회하면서 해당 범위 내의 요소와 인덱스를 반환합니다.



5. 열거된 항목에 조건 적용하기

grades = [85, 92, 78, 95, 88]
passing_score = 90
for index, score in enumerate(grades):
    if score >= passing_score:
        print(f'Student {index + 1} passed with a score of {score}')


위의 소스 코드는 enumerate() 함수를 사용하여 grades 리스트를 순회하면서 학생의 성적이 passing_score 이상인 경우 해당 학생의 인덱스와 성적을 출력합니다.


enumerate() 함수는 다양한 상황에서 인덱스와 값을 함께 다루는 데 유용하며, 위의 예제들은 그중 일부에 불과합니다. 이 함수를 적절히 활용하면 더 다양한 작업을 수행할 수 있습니다.

 

 




4. enumerate() 함수 사용시 주의사항



1. 시작 인덱스 지정
enumerate() 함수의 두 번째 매개변수 start를 활용하여 인덱스의 시작값을 지정할 수 있습니다. 기본값은 0이며, 필요에 따라 시작 인덱스를 변경할 수 있습니다.


2. 복사된 객체 사용
enumerate()
 함수는 순회 가능한(iterable) 객체를 변경하지 않습니다. 그러므로 객체를 변경하고자 할 때는 별도로 새로운 리스트나 컨테이너에 결과를 저장해야 합니다.



3. 인덱스와 값의 순서
enumerate() 함수는 인덱스와 값의 순서로 결과를 반환합니다. 따라서 for 루프에서 먼저 인덱스 변수, 그 다음 값 변수를 사용해야 합니다.


4. enumerate() 객체 변환
enumerate() 함수의 결과는 enumerate 객체로 반환됩니다. 필요에 따라 리스트나 튜플 등으로 변환하여 사용할 수 있습니다.


5. 메모리 사용
큰 데이터셋을 다룰 때 enumerate() 함수를 사용하면 추가적인 메모리를 사용할 수 있으므로 주의가 필요합니다.



enumerate() 함수는 파이썬에서 순회 가능한 객체를 다룰 때 유용한 도구이지만, 위의 주의사항을 염두에 두고 사용해야 합니다.









최종 정리

오늘은 파이썬 enumerate() 함수에 대한 내용을 주제로 정리해 보았습니다. enumerate() 함수는 순회 가능한 객체를 다룰 때 인덱스와 값을 함께 다룰 수 있어 유용한 도구입니다. 이 함수를 활용하면 반복 작업을 보다 효율적으로 수행할 수 있으며, 다양한 상황에서 활용할 수 있는 다양한 기능을 갖고 있습니다.

감사합니다.

 

 

 

728x90
반응형