본문 바로가기
Coding/Python

Python Anti Pattern - Using an unpythonic loop

by Hide­ 2019. 1. 28.
반응형

Using an unpythonic loop

PEP20에 따르면 "There should be one- and preferably only one -obvious way to do it"이라고 나와있다.

각 요소에 접근하기 위해 증가하는 인덱스를 생성자쪽에서 사용하는 for루프는 좋지 않다.

이러한 경우, enumerate()를 사용하는것이 좋다.


Anti-pattern

l = [1,2,3]

# creating index variable
for i in range(0,len(l)):
    # using index to access list
    le = l[i]
    print(i,le)

위 코드는 리스트의 요소들에 접근하기위해 i변수를 사용한다.

이것은 파이썬에서 순회할 때 권장되지 않는 방법이다.


Best practice

for i, le in enumerate(l):
    print(i, le)

따라서 이는 위처럼 바뀌어야한다.

수정된 코드는 리스트를 순회할 때 가장 Pythonic한 코드의 예이다.

for루프안에서 enumerate()를 사용하면, 파이썬은 자동으로 첫번째 변수를 인덱스로, 두번째 변수를 리스트의 값으로 할당한다.


출처 : https://docs.quantifiedcode.com/python-anti-patterns/readability/using_an_unpythonic_loop.html