enumerate사용

매일 공부(ML)·2022년 5월 30일
0

이어드림

목록 보기
61/146

Range보다는 enumerate를 사용하라

  • range함수

    	- 정수 집합을 반복하는 루프가 필요할 때 유용하다.
from ranodom import randint
for i in range(32):
    if randint(32):
        random_bits !=1 <<i
print(bin(random_bits))

#0b11101000100100000111000010000001
  • 이터레이션할 대상 데이터 구조가 있다면 이 시퀀스에 대해 바로 루프를 돈다.
flavor_list = ['바닐라','초콜릿','피칸','딸기']
for flavor in flavor_list:
    print(f'{flavor} 맛있어요.')
  • 이터레이션하면서 리스트의 몇 번째 원소를 처리 중인지 알 수 있다.

    	- list의 길이도 알아야한다
    • 인덱스를 사용하기에 배열 원소에도 접근해야한다.
    • 단계가 여러 개가 되면 가독성이 떨어지게 된다.
for i in range(len(flavor_list)):
    flavor =flavor_list[i]
    print(f'{i+1}: {flavor}')

enumerate

  • 루프 인덱스와 이터레이터의 다음 가밧으로 이뤄진 쌍을 넘겨준다.

  • next 내장 함수를 사용해서 다음 원소를 가져온다.

it = enumerate(flavor_list)
print(next(it)) #(0,'바닐라')
print(next(it)) #(1,'초콜릿')
  • for문에서 간결하게 언패킹할 수 있다.
for i, flavor in enumerate(flavor_list):
    print(f'{i+1}: {flavor}'
  • 두 번째 파라미터를 활용해 어디부터 수를 세기 시작하는 것을 지정한다.
for i, flavor in enumerate(flavor_list):
    print(f'{i+1}: {flavor}'
profile
성장을 도울 아카이빙 블로그

0개의 댓글