- [BW 7] range보다는 enumerate를 사용하라2024년 10월 22일
- 31514
- 작성자
- 2024.10.22.:02
💡 리스트를 이터레이션하면서 리스트의 몇 번째 원소를 처리 중인지 알아야 할 때는 enumerate를 사용하는 것이 좋다.
range를 사용한 코드
animal_list = ['수달', '아기비단털쥐', '짱구'] for i in range(len(animal_list)): animal = animal_list[i] print(f'{i + 1}번은 {animal}.') >>> 1번은 수달. 2번은 아기비단털쥐. 3번은 짱구.
enumerate를 사용한 코드
- enumerate는 이터레이터를 지연 계산 제네레이터(lazy generator)로 감싼다.
- enumberate는 루프 인덱스와 이터레이터의 다음 값으로 이뤄진 쌍을 넘겨준다.
# 다음 코드를 살펴보면 enumerate가 반환한 이터레이터가 어떻게 동작하는지 볼 수 있다. animal_list = ['수달', '아기비단털쥐', '짱구'] it = enumerate(animal_list) print(next(it)) print(next(it)) >>> (0, '수달') (1, '아기비단털쥐')
따라서 우리는 다음과 같이 코드를 작성할 수 있다.
for i, animal in enumerate(animal_list, 1): print(f'{i}번은 {animal}.') >>> 1번은 수달. 2번은 아기비단털쥐. 3번은 짱구.
'Book > 파이썬 코딩의 기술' 카테고리의 다른 글
[BW 9] for나 while 루프 뒤에 else 블록을 사용하지 말라 (0) 2024.10.22 [BW 8] 여러 이터레이터에 대해 나란히 루프를 수행하려면 zip을 사용하라 (0) 2024.10.22 [BW 6] 인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹하라 (0) 2024.10.22 [BW 5] 복잡한 식을 쓰는 대신 도우미 함수를 작성하라 (0) 2024.10.22 [BW 4] f-문자열을 통한 인터폴레이션 (2) 2024.10.22 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)