본문 바로가기

python/파이썬 효율적으로 코딩하기

while 순환보다 for 순환 사용하기

가능하다면 파이썬다운 순환인 for item in iterable을 사용하는 것이 좋다.

 

순환을 작성할 때 for와 while 중 선택해야 하는 경우가 종종 있다. 물론 두 가지 모두 사용할 수 있다. 사용하는 언어가 무한 반복자(iterable)을 가지고 있다면 for만 사용해도 충분하다.

 

while과 for 사이의 형식적 동일성에도 불구하고 일반적으로 while 순환보다 for 순환이 더 파이써닉하다고 느껴진다. 물론 많은 예외가 있지만 파이썬에서 순환을 사용할 때는 거의 전부라 해도 좋을 정도로 컬렉션이나 생성기 함수 (Generator Function), 생성기 순환 표현식 (Generator Expression), 사용자 정의 반복 가능 클래스와 같은 반복 가능 객체 사이를 순환하는 경우가 대부분이다. 만약 이에 해당하지 않는 경우에는 작업 데이터를 제공하는 코드를 반복 가능 객체로 리팩토링해야 한다.

 

while을 사용하는 것이 잘못이라고 말할 수는 없지만 사용할 때마다 for 순환으로 대체할 수 있는지 자문해야 한다. 또한 리팩토링할 코드에도 같은 질문을 해보는 것이 좋다. 그 결과 여전히 while 순환을 사용하겠다고 생각할 수 있지만, 그럼에도 불구하고 항상 자문하는 것이 필요하다.

 

파이썬에서 연속적인 순서대로 데이터를 다루는 방식은 명확하고 우아하게 설계되어 있습니다. 이렇게 하면 무한한 데이터도 효율적으로 처리할 수 있다.