더북(TheBook)

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])
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.