반복형을 리듀스하는 함수

매일 공부(ML)·2023년 4월 14일
0

Fluent Python

목록 보기
106/130

제어 흐름

반복형, 반복자, 제너레이터

반복형을 리듀스하는 함수

모두 반복형을 입력받아 하나의 값으로 반환하고, 이 함수는 "리듀스","폴딩","누적"함수라고 한다.

이런 함수는 모두 functools.reduce() 함수로 구현할 수 있지만, 자주 발생하는 특정 문제를 쉽게 처리하기 때문에 별도의 내장형 함수로 존재하고, all() 과 any()는 단락 평가 함수로, reduce()로 최적화할 수 없다.

all([1,2,3])
any([1,2,3])

sorted()도 반복형을 입력받아서 정렬된 것을 반환하는 내장 함수로, sorted()는 제너레이터 함수인 reversed()와 달리 실제 리스트를 만들어서 반환하고, 입력된 반복형의 항목을 모두 읽어야 정렬할 수 있으며 리스트 안에서 발생하므로 sorted()는 정렬 완료 된다.

sorted()함수가 모든 반복형을 소비할 수 있다.


sorted와 리듀스 함수는 유한 반복형에만 사용할 수 있고 그렇지 않으면 항목을 계속 수집하고 결과를 반환하지 못한다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글