all()
파이썬 `all()`함수는 모든 것이 참 인지 확인하는 함수입니다.
예를 들어 모든 수가 양수인지 확인하려면 다음과 같이 이용할 수 있습니다.
all([0 < i for i in [1, 2, 3]])
# True
all([0 < i for i in [-1, 0, 1]])
# False
작동 원리
`all()`함수는 다음과 같이 정의되어 있습니다.
def all(iterable):
for element in iterable:
if not element:
return False
return True
이를 통해 2가지를 알 수 있습니다.
1. `1, hello, 3 == 3`등 형변환 후 True가 된다면 True를 반환합니다.
2. 중간에 거짓 값이 있다면 작동을 멈추고 False를 반환합니다.
1번부터 자세히 살펴보겠습니다.
all([1, hello, 3 == 3])
# True
all([1, 0, 3 < 0])
# False
`1, hello, 3 == 3`을 불리언으로 형 변환을 하면 `True, True, True`가 나오게 됩니다. 따라서 결과는 `True`입니다. 이에 반해 `1, 0, 3 < 0`을 변환하면 `True, False, False`로 결과는 `False`가 나오게 됩니다.
다음으로 2번을 살펴보도록 하겠습니다. 숫자를 입력받아 출력하고 양수인지 여부를 반환하는 함수 `f(x)`가 있다고 가정하겠습니다.
def f(x: int) -> bool:
print(x)
return 0 < x
all([f(x) for f in [2, 4, -2, 5, 7]])
# 2
# 4
# -2
# False
이와 같이 작성했을 때 `all()`함수는 `-2`까지 진향하고 `5`와 `7`은 실행하지 않는 모습을 볼 수 있습니다. 작동 원리를 자세히 보면 알 수 있듯 `all()`함수는 거짓값이 나왔을 때 바로 반환해 버리기 때문에 그 뒤의 요소를 판별하지 않는 것입니다.
참고
https://docs.python.org/ko/3/library/functions.html#all
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
docs.python.org
'Python' 카테고리의 다른 글
[Python] isdigit() 사용 방법 (0) | 2023.08.15 |
---|---|
[Python] List 사용 방법 (0) | 2023.08.13 |
[Python] 집합 자료형(set) 사용 방법 (0) | 2023.08.09 |
[Python] enumerate() 함수 사용 방법 - 인덱스와 요소를 동시에! (0) | 2023.08.08 |
[Python] 틸트 ~ (물결표) 연산자로 회문(palindrome) 문제 푸는 방법 (0) | 2023.08.07 |