Python의 모든 함수 작동 방식
튜플을 비교할 때 any() 및 all() 내장 함수가 모두 포함됩니다. 놀다. 차이점은 다음과 같습니다.
any()
any()는 반복 가능 요소 중 하나 이상이 Truthy(즉, False가 아님, 0, '', 등).
all()
all()은 iterable의 모든 요소가 Truthy인 경우에만 True를 반환합니다.
사용 사례 이해
코드 조각에서 제공됨:
print [any(x) and not all(x) for x in zip(*d['Drd2'])]
zip(*d['Drd2'])의 각 튜플은 all(x)이 아닌 any(x)의 컨텍스트에서 평가됩니다. 그러나 예상치 못한 [False, False, False] 출력은 의문을 제기합니다.
오류 해석
모든 것에 대한 진리표에 따라:
any(x) | all(x) | any(x) and not all(x) |
---|---|---|
True | False | True |
False | True | False |
True | True | False |
False | False | False |
이 경우 모든 튜플은 동일한 숫자(예: 참값)로 구성되므로 any(x)는 항상 True이고 all(x)도 True입니다. 결과적으로 any(x) 및 not all(x)는 항상 False로 평가되어야 하며 이는 출력에 반영되지 않습니다.
오류 원인
오류는 다음과 같습니다. (x[0] != x[1])이 진실한 표현일 것이라는 잘못된 기대에서. 그러나 튜플의 숫자가 동일한 경우(예: (1, 1)), (x[0] != x[1])은 False로 평가됩니다.
올바른 논리
튜플 내의 값이 다른지 정확하게 확인하려면 다음을 사용할 수 있습니다. 논리:
print [x[0] != x[1] for x in zip(*d['Drd2'])]
이 표현식은 각 튜플의 해당 요소를 올바르게 비교하여 의도한 대로 차이점을 식별합니다.
위 내용은 튜플을 비교할 때 Python의 `any()` 및 `all()` 함수는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!