파이썬의 range 함수 특정 구간의 숫자의 범위를 만들어 주는 함수 입니다.
for i in range(10):
print(i, end=" ")
➜
0 1 2 3 4 5 6 7 8 9
문자열로 이뤄진 list처럼 이터레이션할 대상 데이터 구조가 있으면 이 시퀀스에 대해 바로 루프를 돌 수 있다.
perfumes = ["diptyque", "BYREDO", "jomalone"]
for perfume in perfumes:
print(f'{perfume} 입니다.')
리스트를 이터레이션하면서 리스트의 몇 번째 원소를 처리 중인지 알아야 할 때가 있다.
for i in range(len(perfumes)):
perfume = perfumes[i]
print(f"{i+1} : {perfume}")
perfumes나 range에 대해 이터레이션을 수행하는 다른 예제와 비교해보면 이 코드는 투박해 보인다. list의 길이를 알아야 하고, 인덱스를 사용해 배열에 원소에 접근해야 한다.
이러한 문제점을 해결할 수 있는 enumrate 내장 함수를 제공한다. enumerate가 넘겨주는 각 쌍을 for 문에서 간결하게 언패킹할 수 있다.
for idx, perfume in enumerate(perfumes):
print(f'{idx+1} : {perfume}')
✍🏻enumerate를 사용하면 코드가 휄씬 깔끔하고 가독성이 좋아진다.
enumerate의 두 번째 파라미터로 어디부터 수를 세기 시작할지 지정할 수 있다.
for idx, perfume in enumerate(perfumes, 1):
print(f'{idx} : {perfume}')