1.2 색인을 순환하는 대신 enumerate( ) 사용하기
C에서 파생된 언어를 사용하는 개발자들은 목록이나 다른 데이터 구조를 순환할 때 대부분 색인 요소를 사용하는 경향이 있습니다. 하지만 이것은 일반적으로 파이썬답지 않은 순환 방법에 해당합니다. 물론 이렇게 작성된 코드가 enumerate()보다 눈에 띄게 느린 것은 아니지만, 가독성이 떨어질 뿐만 아니라 더 장황하고 코드의 악취(code smell)2가 느껴집니다.
예를 들어 C++에서는 다음과 같은 코드를 흔히 볼 수 있습니다.
// `items`는 배열, 벡터 또는 다른 컬렉션 타입일 수 있음 for (int i = 0; i < items.size(); i++) { process(i, items[i]); }
파이썬에서도 이와 매우 유사한 방법을 사용할 수 있으며, 심지어 파이썬의 초기 버전에서는 이 방식이 표준인 적도 있었습니다.
for i in range(len(items)): process(i, items[i])