Notice
Recent Posts
Recent Comments
Link
오늘도 개발
all(), any() 본문
all(iterable)
iterable의 모든 요소가 참이면 True 반환.
iterable이 비어있으면 True 반환.
all([True, True, True]) # True
all([True, True, False]) # False
all([]) # True
any(iterable)
iterable의 요소 중 하나라도 참이면 True 반환.
iterable이 비어있으면 False 반환.
any([True, False, False]) # True
any([False, False, False]) # False
any([]) # False
유의할 점
all과 any는 인자로 들어온 iterable이 지연평가* 되는 경우 단락 평가**처럼 동작한다.
따라서 지연평가되는 iterable을 사용하면 속도를 높일 수 있다.
# iterable이 지연평가 되지 않는 경우
any(list(range(100)) # list가 먼저 0부터 999까지 iteration, 이후 any 실행
# iterable이 지연평가 되는 경우
any(range(100)) # 0, 1까지 iteration되면 바로 True 반환
* 지연 평가(lazy evaluation) : 불필요한 연산을 줄이기 위해 연산을 지연시키는 방법.
** 단락 평가(short-circuit evaluation) : 평가 결과가 중간에 결정나면 끝까지 평가하지 않는 방법.
'웹 프로그래밍 > Python3' 카테고리의 다른 글
| pytest 사용법 2) mock (0) | 2023.01.19 |
|---|---|
| pytest 사용법 1) 설정, fixture, parametrize (0) | 2023.01.18 |
| pyenv와 pyenv-virtualenv (0) | 2023.01.03 |
| setdefault와 defaultdict (0) | 2022.12.23 |
| Python의 GC(Garbage Collection) (0) | 2022.10.31 |