lst = [ ... ]
for i in range(N):
print(lst[i]) # Case 1
print(i, lst[i]) # Case 2
cnt = 0
for i in lst:
print(i) # Case 3
print(cnt, i) # Case 4
cnt += 1
파이썬을 사용하여 반복문을 작성할 때 보통 위와 같은코드를 사용한다.
Case 1과 2처럼 범위를 설정하여 그 인덱스를 통해 배열의 값을 출력하기도 하고,
Case 3과 4처럼 범위 대신 iterable 객체를 사용해 직접 요소를 출력하기도 한다.
이때 해당 인덱스와 값을 출력하기 위해서는 Case 2나 4처럼 조금은 번거로운 방법을 사용해야 한다.
이것을 Python 내장 함수인 enumerate로 해결할 수 있다.
items = ["Fir", "Sec", "Thi"]
for val in enumerate(items):
print(val)
'''
(0, 'Fir')
(1, 'Sec')
(2, 'Thi')
'''
enumerate 함수는 열거 객체를 돌려준다. // enumerate(iterable, start=0)
쉽게 말하면 반복 가능한(iterable) 객체의 인덱스와 값을, 튜플 형태로 반환해주는 함수이다.
이때 인덱스 시작 번호는 start 매개변수로 설정해줄 수 있다.
# Case 1
items = ["Fir", "Sec", "Thi"]
for val in enumerate(items):
print(list(val))
'''
[0, 'Fir']
[1, 'Sec']
[2, 'Thi']
'''
# Case 2
items = ["Fir", "Sec", "Thi"]
for index, item in enumerate(items, start = 100):
print(index, item)
'''
100, 'Fir'
101, 'Sec'
102, 'Thi'
'''
Case 1처럼 튜플을 리스트로 바꿔 사용할 수도 있다.
Case 2처럼 unpacking하여 인덱스와 값을 각각 받아들여 출력하는 형태도 가능하다.
이때 start로 100 값을 넣어주니 100부터 값을 세어나가는 것을 볼 수 있다.
앞으로 인덱스와 값을 사용할 일이 있다면 enumerate 함수를 사용해보자
고민을 시작한 문제 출처 : https://www.acmicpc.net/problem/16139
참고한 문서 자료 : https://docs.python.org/ko/3/library/functions.html#enumerate
'Computer Science > 파이썬(Python)' 카테고리의 다른 글
Python f string format (0) | 2023.04.01 |
---|---|
Python zip (0) | 2023.03.30 |
Python if comprehension (0) | 2023.03.28 |
Python time module (0) | 2023.03.27 |
Python pass vs continue (0) | 2023.03.27 |