range함수와 enumerate함수는 비슷하지만 enumerate이 값뿐만 아니라 인덱스까지 쌍으로 반환한다는 것이 특징이다.
flavor_list = ['바닐라', '초콜릿', '피칸', '딸기']
for flavor in flavor_list:
print{f'{flavor} 맛있어요.')
>>>
바닐라 맛있어요.
초콜릿 맛있어요.
피칸 맛있어요.
딸기 맛있어요.
#----------------------------------------------------#
for i in range(len(flavor_list)):
flavor = flavor_list[i]
print(f'{i+1}: {flavor}')
>>>
1: 바닐라
2: 초콜릿
3: 피칸
4: 딸기
it = enumerate(flavor_list)
print(next(it))
print(next(it))
>>>
(0, '바닐라')
(1, '초콜릿')
또한 enumerate가 넘겨주는 각 쌍을 for문에서 간결하게 언패킹할 수 있다.
for i, flavor in enumerate(flavor_list):
print(f'{i + 1}: {flavor}')
>>>
1: 바닐라
2: 초콜릿
3: 피칸
4: 딸기
enumerate는 두 번째 파라미터로 어디부터 수를 세기 시작할지 지정할 수 있다.
for i, flavor in enumerate(flavor_list, 1):
print(f'{i}: {flavor}')