Python의 any 및 all 함수 동작 이해
Python의 any 및 all은 반복 가능 항목 내에서 여러 요소의 진실성을 평가하는 편리한 방법을 제공합니다. . any는 요소 중 하나라도 True인 경우 True를 반환하고, all은 모든 요소가 True인 경우에만 True를 반환합니다.
any vs. all
직관적으로 any는 다음과 같이 시각화할 수 있습니다. 일련의 논리 OR 연산자(||) 및 일련의 논리 AND 연산자(&&). 이러한 이해는 해당 기능을 명확히 하는 데 도움이 됩니다.
단락
모든 것의 중요한 측면은 단락 동작입니다. 그들은 결과를 결정할 수 있을 때까지 요소를 순차적으로 평가합니다. 이 최적화는 전체 반복 가능 항목의 불필요한 순회를 방지합니다.
주어진 예제의 응용 프로그램
제공된 예제에서는 튜플을 비교하여 값이 다른지 확인하고 이 경우 True를 인쇄합니다. 예상되는 출력은 [False, True, False]여야 합니다. 그러나 실제 얻은 결과는 [False, False, False] 입니다. 이러한 불일치는 사용된 표현식에서 발생합니다.
[any(x) and not all(x) for x in zip(*d['Drd2'])]
괄호 안의 표현식은 튜플의 요소 중 하나 이상이 True이지만 모든 요소가 True가 아닌 경우에만 True로 평가됩니다. 제공된 경우에는 어떤 튜플에도 그러한 값이 포함되어 있지 않습니다. 따라서 결과는 잘못 [False, False, False]입니다.
올바른 구현
의도한 동작을 달성하려면 대신 다음 표현식을 사용할 수 있습니다.
[x[0] != x[1] for x in zip(*d['Drd2'])]
이 표현식은 각 튜플의 첫 번째 요소와 두 번째 요소를 직접 비교하여 서로 다르면 True를 반환합니다. 결과적으로 원하는 [False, True, False] 출력을 얻게 됩니다.
위 내용은 Python의 `any` 및 `all` 함수는 어떻게 작동하며, 튜플 비교가 실패한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!