더북(TheBook)

BETTER WAY 10
range보다는 enumerate를 사용하자

 

 

내장 함수 range는 정수 집합을 순회(iterate)하는 루프를 실행할 때 유용하다.

random_bits = 0

for i in range(64):

if randint(0, 1):

random_bits |= 1 << i

 

문자열의 리스트 같은 순회할 자료 구조가 있을 때는 직접 루프를 실행할 수 있다.

flavor_list = [‘vanilla’, ‘chocolate’, ‘pecan’, ‘strawberry’]

for flavor in flavor_list:

print(‘%s is delicious’ % flavor)

 

종종 리스트를 순회하거나 리스트의 현재 아이템의 인덱스를 알고 싶은 경우가 있다. 예를 들어 좋아하는 아이스크림의 순위를 출력하고 싶다고 하자. 한 가지 방법은 range를 사용하는 것이다.

for i in range(len(flavor_list)):

flavor = flavor_list[i]

print(‘%d: %s’ % (i + 1, flavor))

 

위의 코드는 flavor_listrange를 순회하는 다른 예제와 비교해보면 약간 세련되지 못해 보인다. 리스트의 길이를 알아내야 하고, 배열을 인덱스로 접근해야 하며, 읽기 불편하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.