반응형
파이썬 인덱스, 값 동시 for문 순회 : enumerate
파이썬에서 for문 순회 중에 인덱스의 번호를 같이 가져와 사용하고 싶은 경우
유용하게 사용 가능한 내장 함수인 enumerate의 원리와 사용 예제에
대해서 살펴보도록 하겠습니다.
파이썬 enumerate 원리
일반 리스트 순회와 enumerate를 이용한 for문 순회를 비교해보겠습니다.
list_a = ['a', 'b', 'c', 'd']
# 일반 리스트 순회 for문
for i in list_a:
print(i)
# 출력 결과
a
b
c
d
리스트를 순회하는 경우 리스트의 각 원소인 a, b, c, d에만 순서대로 접근하게 됩니다.
# enumerate를 이용한 리스트 순회
for i in enumerate(list_a):
print(i)
# 출력 결과
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
반면, enumerate를 이용한 경우는 각 차례에 (인덱스 번호, 원소) 쌍의 튜플 형태로
값을 반환해주고 있는 상황을 살펴볼 수 있습니다.
이 점을 이용하여 인덱스 번호를 동시에 가져와 사용하는 것이 수월해집니다.
물론, 마찬가지 원리로 튜플, np.array 등 자료형에도 적용이 가능합니다.
파이썬 enumerate for문 예제
파이썬에서 for 뒤에 순회하는 변수를 2개로 지정이 가능한데 enumerate를 이용한 경우에는
첫 변수는 인덱스 번호, 두번째 변수는 원소를 가져와 반복문에 사용이 가능합니다.
# enumerate를 이용한 인덱스, 리스트 동시 순회
for idx, val in enumerate(list_a):
print(idx, '인덱스의 원소는', val,'입니다.')
# 출력 결과
0 인덱스의 원소는 a 입니다.
1 인덱스의 원소는 b 입니다.
2 인덱스의 원소는 c 입니다.
3 인덱스의 원소는 d 입니다.
앞쪽 변수인 idx에는 인덱스 번호인 0, 1, 2, 3이,
뒤쪽 변수인 val에는 원소인 a, b, c, d가 순회 시에 반환되고 있는 것을 볼 수 있습니다.
파이썬 enumerate 1부터 시작, 시작 인덱스 지정
enumerate 내부에 start 인자에 값을 지정하여 시작 인덱스 번호를 바꿀 수 있습니다.
아래 예시는 인덱스 시작 번호를 0번에서 1번으로 바꾼 예시입니다.
# 시작 인덱스 번호 지정
for idx, val in enumerate(list_a, start = 1):
print(idx, '번째의 원소는', val,'입니다.')
# 출력 결과
1 번째의 원소는 a 입니다.
2 번째의 원소는 b 입니다.
3 번째의 원소는 c 입니다.
4 번째의 원소는 d 입니다.
idx 변수에서 0, 1, 2, 3 대신 1, 2, 3, 4의 값을 반환해주고 있습니다.
'Python > 파이썬 기초' 카테고리의 다른 글
파이썬 while문 예제와 사용법 정리 (1) | 2022.02.09 |
---|---|
파이썬 주석 처리 방법 : 한줄, 여러줄, 단축키(파이참, 주피터, 코랩) (0) | 2022.01.06 |
파이썬 return 값 여러개 설정하기, 재귀 함수 응용 예시 (0) | 2022.01.03 |