🗄️ 데이터센터
home
주식거래 데이터
home

enumerate : 번호매기기

번호매기는 함수

enumerate()는 파이썬의 내장 함수로, 순서가 있는 자료형(리스트, 튜플, 문자열 등)을 입력으로 받아 각 요소의 위치(인덱스)튜플 형태(index, value)로 반환합니다. 예를 들어, ['a', 'b', 'c'] 리스트를 enumerate()에 전달하면 (0, 'a'), (1, 'b'), (2, 'c')와 같이 각 요소의 인덱스와 값이 쌍으로 반환됩니다.
# enumerate 기본 사용 예시 fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits): # for 반복문 참고 print(f"인덱스 {index}: {fruit}") # 출력: # 인덱스 0: apple # 인덱스 1: banana # 인덱스 2: orange
Python
복사
파이썬에서 enumerate()는 기본적으로 0부터 시작하는 제로 베이스 인덱싱(Zero-based indexing)을 사용합니다. 이는 프로그래밍에서 일반적으로 사용되는 관례로, 첫 번째 요소의 인덱스가 0, 두 번째 요소의 인덱스가 1, 이런 식으로 진행됩니다. 만약 1부터 시작하는 인덱스가 필요한 경우, start 매개변수를 사용하여 시작 값을 지정할 수 있습니다.

enumerate() 함수의 특징

enumerate() 함수는 다음과 같은 주요 특징을 가지고 있습니다. 먼저, 시작 인덱스를 지정할 수 있어 enumerate(iterable, start=0) 형태로 원하는 시작 번호부터 카운트할 수 있습니다. 또한, for 루프와 함께 사용하여 인덱스와 값을 동시에 처리할 수 있어 코드를 더 효율적으로 작성할 수 있습니다. 마지막으로, enumerate() 함수는 enumerate 객체를 반환하며, 이는 이터레이터로 사용되어 메모리를 효율적으로 관리할 수 있습니다.
# 시작 인덱스를 1로 지정한 예시 fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits, start=1): print(f"{index}번째 과일: {fruit}") # 출력: # 1번째 과일: apple # 2번째 과일: banana # 3번째 과일: orange
Python
복사
이터레이터(Iterator)란 데이터의 요소를 순차적으로 접근할 수 있게 해주는 객체입니다. 이터레이터는 next() 메서드를 통해 데이터의 다음 요소에 접근할 수 있으며, 더 이상 접근할 요소가 없을 때는 StopIteration 예외를 발생시킵니다. 이터레이터를 사용하면 대용량 데이터를 처리할 때 모든 데이터를 한 번에 메모리에 로드하지 않고, 필요한 요소만 순차적으로 접근하여 메모리를 효율적으로 사용할 수 있습니다. enumerate() 함수가 반환하는 enumerate 객체도 이터레이터의 한 종류로, 컬렉션의 요소를 하나씩 순회하면서 인덱스와 값을 제공합니다.
쉽게 말해서, enumerate() 함수는 데이터를 하나씩 차례대로 처리하면서 메모리를 아끼는 방식으로 작동합니다. 마치 책을 읽을 때 한 페이지씩 넘기면서 읽는 것처럼, 데이터도 한 번에 전부 불러오지 않고 필요한 부분만 순서대로 가져와서 처리합니다.

enumerate()의 활용 사례

리스트 인덱싱: 리스트의 요소와 인덱스를 동시에 처리해야 할 때
names = ['Alice', 'Bob', 'Charlie'] for idx, name in enumerate(names): print(f"학생 {idx+1}: {name}")
Python
복사
파일 처리: 파일의 라인 번호와 내용을 함께 처리할 때
with open('example.txt', 'r') as file: for line_num, line in enumerate(file, 1): print(f"라인 {line_num}: {line.strip()}")
Python
복사
데이터 처리: 순차적인 데이터에 번호를 매길 때
scores = [95, 88, 92] for rank, score in enumerate(sorted(scores, reverse=True), 1): print(f"{rank}등: {score}점")
Python
복사
문자열 처리: 문자열의 각 문자 위치를 찾을 때
text = "Hello" for pos, char in enumerate(text): print(f"위치 {pos}의 문자: {char}")
Python
복사
다중 리스트 처리: 2차원 리스트의 행 번호와 내용을 함께 처리할 때
matrix = [[1, 2], [3, 4], [5, 6]] for row_num, row in enumerate(matrix): print(f"행 {row_num}: {row}")
Python
복사

연습만이 성장의 지름길!

코딩직접 해봐야 합니다! colab으로 간단히 연습해 보세요. 프로젝트 전체가 아닌, 작은 코드 조각들을 하나씩 연습하는 것입니다. 이렇게 연습한 조각들이 모여 성공적인 프로젝트가 완성됩니다.