Pythonic Thinking(3) 파이썬 효율적으로 사용하기
첫번째 챕터 Pythonic Thinking의 7-9번 팁을 간단하게 요약해보자.
- Range 대신
Enumerate
를 쓰자.- 간결하게 iterator와 index를 이용할 수 있다.
range
를 이용해서 loop를 돌면서 indexing을 하기보다enumerate
를 사용하자.enumerate
의 두번째 파라미터를 이용해서 0 이외의 숫자부터 indexing할 수 있다. 아래 예시for i, flavor in enumerate(flavor_list, 1): printf(f'{i}: {flavor}')
- Iterator들을 병렬적으로 처리하기 위해
zip
을 사용하자.enumerate
와 마찬가지로zip
이라는 기본 함수를 사용해서 여러 iterator들을 병렬적으로 처리할 수 있다.zip
은 iterator의 다음 값에 해당하는 값들을 tuple의 형태로 그때 그때 하나씩 생성한다(lazy generator). 따라서 메모리 걱정 없이 무한정 긴 iterator를 처리할 수 있다.- 비교하는 두 iterator의 길이가 다르면 작은 쪽까지만 tuple을 생성하고 멈춘다.
itertools
모듈의zip_longest
를 사용하면 길이가 긴 iterator에 맞춰서 tuple을 생성할 수 있다(짧은 쪽의 값엔 None이 default로 들어간다).
for
,while
문 다음에는else
사용을 지양하자.- for나 while문 뒤에 else가 오게되면 어떻게 되는지 알자.
- break를 사용하게 되면 뒤에 else가 실행되지 않는다.
- 따라서 헷갈리고 비직관적인 반복문 뒤
else
사용을 지양하자.
출처: Slatkin, B. (2020). Effective Python: 90 specific ways to write better Python. USA: Addison-Wesley.