- [BW 32] 긴 리스트 컴프리헨션보다는 제네레이터 식을 사용하라2024년 11월 01일
- 31514
- 작성자
- 2024.11.01.:10
리스트 컴프리헨션의 입력이 커지면 메모리를 상당히 많이 사용하고, 그로 인해 프로그램이 중단될 수 있다.
이 문제를 해결하기 위해 파이썬은 제네레이터 식을 제공한다.
제네레이터 식을 실행해도 출력 시퀀스 전체가 실체화되지 않고, 이터레이터가 생성된다.
it = (len(x) for x in open('my_file.txt'))
두 제네레이터 식을 합성할 수도 있다.
roots = ((x, x ** 0.5) for x in it)
다만 제네레이터가 반환하는 이터레이터에는 상태가 있기 때문에 한 번만 사용해야 한다.
'Book > 파이썬 코딩의 기술' 카테고리의 다른 글
[BW 37] 내장 타입을 여러 단계로 내포시키기보다는 클래스를 합성하라 (2) 2024.11.11 [BW 33] yield from을 사용해 여러 제너레이터를 합성하라 (1) 2024.11.08 [BW 31] 인자에 대해 이터레이션할 때는 방어적이 돼라 (1) 2024.10.31 [BW 30] 리스트를 반환하기보다는 제너레이터를 사용하라 (2) 2024.10.30 [BW 29] 대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라 (0) 2024.10.29 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)