C에서 파생된 언어를 사용하는 개발자들은 목록이나 다른 데이터 구조를 순환할 때 대부분 색인 요소를 사용하는 경향이 있다. 하지만 이것은 일반적으로 파이썬답지 않은 순환 방법에 해당한다.
아래와 같은 코드는 일반적으로 코드의 악취로 간주된다.
for i in range(len(items)):
process(i, i[i])
순환안에서 색인 위치를 전혀 사용할 필요가 없는데도 불구하고 색인을 사용하는 것은 좋은 방법이 아니다. 더 관용적인 사용 방식은 아래와 같이 단순하다.
for i in items:
process(None, item)
색인과 그에 연결된 항목을 모두 사용하는 경우가 비교적 흔한데, 이 경우 enumerate 함수를 사용하는 것이 훨씬 관용적이고 직관적이다.
for i, idx in enumerate(items):
process(i, idx)
반대로 항목 자체는 필요하지 않으나 색인이 필요한 경우가 있다. 이 경우 '사용하지 않는 값' 을 의미하는 _ 를 사용한다.
for i, _ in enumerate(items):
process(i, None)
'python > 파이썬 효율적으로 코딩하기' 카테고리의 다른 글
while 순환보다 for 순환 사용하기 (0) | 2024.08.14 |
---|---|
순환 중 객체 변형 (0) | 2024.08.14 |
dict.key()로 순환하지 않기 (0) | 2024.08.13 |