본문 바로가기

Python

[Python] 파이썬 all() 사용 방법

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