본문 바로가기
Python/Python 내장함수

Python all(), any(), 파이썬 내장함수

by 베타코드 2022. 3. 18.
반응형

안녕하세요. 독학코딩입니다. 오늘은 파이썬에서 iterable의 인자를 체크할 때 가장 유용하게 사용되는 all()과 any()에 대하여 배워 보겠습니다.

 

Python all()

파이썬 내장함수인 all()은 iterable의 모든 인자들이 참이면 True를 반환하는 간단한 함수입니다. 공식 문서에는 아래와 같은 코드 예시로 설명합니다.

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

 

예를 들어 본다면 아래와 같습니다.

list_a = [1, 2, 3, 4]
print(all(list_a))
# True

list_a = [0, 1, 2, 3, 4]
print(all(list_a))
# False

list_a = ["1", "2", "3", "4"]
print(all(list_a))
# True

list_a = ["1", "", "3", "4"]
print(all(list_a))
# False

list_a = []
print(all(list_a))
# True

파이썬에서 0, None, "" 은 False로 구분하기 때문에 all() 을 하면 False가 나옵니다. 하지만 iterable 자체가 비어 있는 것은 True입니다.

 

Python any()

파이썬 내장함수인 any()은 iterable의 인자 중 하나라도 참이면 True를 반환하는 간단한 함수입니다. 공식 문서에는 아래와 같은 코드 예시로 설명합니다.

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

 

예를 들어본다면 아래와 같습니다.

list_a = [1, 2, 3, 4]
print(any(list_a))
# True

list_a = [0, 1, 2, 3, 4]
print(any(list_a))
# True

list_a = ["1", "2", "3", "4"]
print(any(list_a))
# True

list_a = ["1", "", "3", "4"]
print(any(list_a))
# True

list_a = []
print(any(list_a))
# False

 

아마 위의 설명만으로는 충분히 이해하기 어려울 겁니다. 저는 처음에 그래서 무슨 조건에 참인데? 이런 생각을 했던 것 같습니다. 실무적인 예시를 들어보면 조금 더 이해하기가 좋을 것 같습니다.

list_a = [1, 2, 3, 4]
check = 1
if any(check==i for i in list_a):
    print("리스트 안에 1이 있습니다.")
else:
    print("리스트 안에 1이 없습니다.")

list_a = [1, 1, 1, 1]
check = 1
if all(check==i for i in list_a):
    print("리스트 전부가 1입니다.")
else:
    print("리스트 1이 아닌 인자가 있습니다.")

all() 과 any()를 실제로 사용할 때는 조건을 설정하는 것이 일반적입니다. 그래서 iterable의 체크하는데 많이 사용합니다.

 

반응형

댓글