programing

python 목록의 모든 요소가 False인지 테스트

lastcode 2023. 7. 26. 22:07
반응형

python 목록의 모든 요소가 False인지 테스트

반품 방법False모든 요소가 목록에 있는 경우False?

지정된 목록은 다음과 같습니다.

data = [False, False, False]

사용:

>>> data = [False, False, False]
>>> not any(data)
True

any반복 가능한 항목에 진실 값이 있으면 True를 반환합니다.

기본적으로 반복 가능한 값을 처리하고 시퀀스의 부울 값 요소가 평가하는 값에 따라 True 또는 False를 반환하는 두 가지 함수가 있습니다.

  1. all(iterable)의 모든 요소가 True를 반환합니다.iterable참 값으로 간주됩니다(예:reduce(operator.and_, iterable)).

  2. any(iterable)적어도 하나의 요소가 True일 경우 True를 반환합니다.iterable는 참 값입니다(다시 말하지만, 기능적인 것을 사용하면,reduce(operator.or_, iterable)).

사용all함수, 매핑할 수 있습니다.operator.not_목록 위에 열거나 음수 값으로 새 시퀀스를 만들고 새 시퀀스의 모든 요소가 참인지 확인합니다.

>>> all(not element for element in data)

와 함께any함수, 하나 이상의 요소가 참인지 확인한 다음 반환해야 하므로 결과를 부정할 수 있습니다.False진정한 요소가 있다면,

>>> not any(data)

De Morgan의 법칙에 따르면, 이 두 변형은 동일한 결과를 반환하지만, 저는 마지막 변형을 선호합니다.any더 짧고, 더 읽기 쉽고(그리고 직관적으로 "데이터에 진정한 가치가 없다"고 이해할 수 있음), 더 효율적이기 때문입니다(추가 시퀀스를 만들지 않기 때문입니다).

True그리고.False0과 1의 부울 표현입니다.
True1 그리고False= 0

data = [False, False, False]    
if sum(data) == 0:
   return False
if sum(data) == len(data):
   return True

sum(data)의 추가를 나타냅니다.1그리고.0목록에서 True(1) 및 False(0) 값을 각각 사용합니다.

모든 경우에False합은 0입니다.
그리고 모든 True'의 합이 목록의 길이와 같을 경우.

다른 합 값은 모두 거짓 또는 참이 아님을 의미합니다.

우리 모두는 알고 있습니다.False또한 고려됩니다.0그래서 만약에sum하필이면0즉, 목록 내의 모든 요소는False.
하지만 당신이 원하기 때문에:

모든 요소가 '거짓'이므로 '거짓'을 반환합니다.

이 작업을 수행하려면 음수 연산자를 사용합니다.not또는!.

data = [False, False, False]
print(sum(data)!=0) #False

제너레이터 식을 사용하는 다른 접근 방식은 다음과 같습니다.

data = [False, False, False]
try:
    out = next(elt for elt in data if elt) # holds the value of first non-empty element
except StopIteration:
    print("all elements are empty")

data = [[], [], [1], [2]]
try:
    out = next(elt for elt in data if elt) # [1]
except StopIteration:
    print("all elements are empty")

언급URL : https://stackoverflow.com/questions/31099561/test-if-all-elements-of-a-python-list-are-false

반응형