파이썬은 반복 가능한 객체(iterable)에 대해 "AND"와 "OR" 논리 연산을 수행할 수 있도록 all()과 any()라는 두 가지 내장 함수를 제공합니다. 이 두 함수는 복잡한 조건문을 한 줄로 간결하게 작성할 수 있게 해주어 실무에서 매우 유용하게 활용됩니다.
파이썬 any() 함수란?
any() 함수는 iterable의 요소 중 하나라도 참(True)이면 True를 반환하고, 그렇지 않으면 False를 반환합니다. 단, iterable이 비어 있는 경우에는 False를 반환합니다.
문법
any(iterable)
iterable로는 리스트(list), 튜플(tuple), 세트(set), 딕셔너리(dictionary) 등을 사용할 수 있습니다.
예제 1: 리스트 – 하나라도 True인지 확인
>>> mylst = [False, True, False]
>>> x = any(mylst)
>>> x
True
실행 결과: 두 번째 요소가 True이므로 결과는 True입니다.
예제 2: 튜플 – 하나라도 True인지 확인
>>> mytuple = (0, 1, 0, False)
>>> x = any(mytuple)
>>> print(x)
True
예제 3: 세트(Set) – 하나라도 True인지 확인
>>> myset = {0, 1}
>>> x = any(myset)
>>> print(x)
True예제 4: 딕셔너리 – 키 중 하나라도 True인지 확인
딕셔너리에 any()나 all()을 적용하면 값(value)이 아닌 키(key)를 기준으로 판단합니다.
>>> mydict = {0: "Apple", 1: "Banana"}
>>> x = any(mydict)
>>> print(x)
True키 1이 참으로 평가되므로 True가 반환됩니다.
any()의 반환값 정리
- True – iterable의 요소 중 최소 하나라도 참일 때
- False – 모든 요소가 거짓이거나, iterable이 비어 있을 때
| 조건 | 반환값 |
|---|---|
| 모든 값이 참일 때 | True |
| 하나 이상의 값이 참일 때 | True |
| 모든 값이 거짓일 때 | False |
| 빈 iterable일 때 | False |
파이썬 all() 함수란?
all() 함수는 iterable의 모든 요소가 참(True)일 때만 True를 반환하고, 하나라도 거짓이면 False를 반환합니다. 특히 iterable이 비어 있을 때는 True를 반환한다는 점에 주의해야 합니다.
문법
all(iterable)
예제 1: 리스트 – 모두 True인지 확인
>>> mylst = [True, True, False]
>>> x = all(mylst)
>>> print(x)
False
리스트 안에 False가 하나 포함되어 있기 때문에 결과는 False입니다.
예제 2: 튜플 – 모두 True인지 확인
>>> mytuple = (0, True, False)
>>> x = all(mytuple)
>>> print(x)
False
예제 3: 세트(Set) – 모두 True인지 확인
>>> myset = {True, 1}
>>> x = all(myset)
>>> print(x)
True예제 4: 딕셔너리 – 모든 키가 True인지 확인
>>> mydict = {0: "Apple", 1: "Banana"}
>>> x = all(mydict)
>>> print(x)
False키 0은 거짓(False)으로 평가되므로 결과는 False입니다.
all()의 반환값 정리
- True – iterable의 모든 요소가 참일 때
- False – iterable의 요소 중 하나라도 거짓일 때
| 조건 | 반환값 |
|---|---|
| 모든 값이 참일 때 | True |
| 하나라도 거짓인 값이 있을 때 | False |
| 모든 값이 거짓일 때 | False |
| 빈 iterable일 때 | True |
any() vs all() 한눈에 비교하기
| 구분 | any() | all() |
|---|---|---|
| 논리 연산 | OR (하나라도 참이면 True) | AND (모두 참이어야 True) |
| 빈 iterable 입력 시 | False | True |
| 주요 용도 | 조건 중 하나라도 만족하는지 검사 | 모든 조건을 만족하는지 검사 |
이처럼 any()와 all()은 각각 OR, AND 논리를 담당하는 함수로, 반복문 없이도 iterable 전체의 조건을 손쉽게 검사할 수 있습니다. 상황에 맞게 적절히 활용하면 코드를 더욱 간결하고 읽기 좋게 만들 수 있습니다.