'Better way 7. range 보다는 enumerate를 사용하라' 정리

Effective Python 2nd 파이썬 코딩의 기술 (교보문고 링크)을 제대로 이해하고자 블로그에 정리합니다. 혹 누군가에게도 도움이 되기를 바랍니다.



현재 위치

Note
<1. Pythonic Thinking>
Item 7: Prefer enumerate Over range



listfor 루프 돌 일 있으면, enumerate!!



두 리스트에 대해서 같은 인덱스를 봐야하는 상황에서 사용할 수 있습니다.

flavor_list = ['바닐라', '초콜릿', '피칸', '딸기']

for i, flavor in enumerate(flavor_list, 1):  # enumerate() 두번째 인자로 i의 시작 번호 지정
    print(f'{i}: {flavor}')

>>>

1: 바닐라
2: 초콜릿
3: 피칸
4: 딸기


책에서 챕터 마지막 부분에 적혀있는 내용입니다.

Tip
enumerate provides concise syntax for looping over an iterator and getting the index of each item from the iterator as you go.
enumerate를 사용하면 이터레이터에 대해 루프를 돌면서 이터레이터에서 가져오는 원소의 인덱스까지 얻는 코드를 간결하게 작성할 수 있다.
Tip
Prefer enumerate instead of looping over a range and indexing into a sequence.
range에 대해 루프를 돌면서 시퀀스의 원소를 인덱스로 가져오기보다는 enumerate를 사용하라.
Tip
You can supply a second parameter to enumerate to specify the number from which to begin counting (zero is the default).
enumerate의 두 번째 파라미터로 몇 부터 번호를 부여할지 지정할 수 있다(디폴트 값은 0이다).


내부적으로 제너레이터로 동작합니다.

flavor_list = ['바닐라', '초콜릿', '피칸', '딸기']
it = enumerate(flavor_list, 1)
print(next(it))
print(next(it))

>>>

(1, '바닐라')
(2, '초콜릿')


Related Content