반응형
안녕하세요. 독학코딩입니다. 오늘은 파이썬에서 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의 체크하는데 많이 사용합니다.
반응형
'Python > Python 내장함수' 카테고리의 다른 글
Python open(), 파이썬 파일 읽고 쓰기 내장함수 (0) | 2022.03.16 |
---|
댓글