여러 값이 목록에 속하는지 확인하려고 하면 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 Python의 ',' 연산자를 사용하여 멤버십을 테스트하면 예기치 않은 튜플이 반환될 수 있습니다.
<code class="python">'a','b' in ['b', 'a', 'foo', 'bar'] ('a', True)</code>
여러 값의 멤버십을 정확하게 테스트하려면 다음에서 Python의 all 함수를 활용하세요. 아래에 설명된 대로 목록 이해와 결합:
<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b']) True</code>
세트는 회원 테스트에도 사용될 수 있습니다. 그러나 제한이 있습니다. 예를 들어 목록과 같이 해시할 수 없는 요소는 처리할 수 없습니다.
<code class="python">{'a', 'b'} <= {'a', 'b', 'foo', 'bar'} True {'a', ['b']} <= {'a', ['b'], 'foo', 'bar'} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'</code>
대부분의 경우 all 함수를 사용하는 하위 집합 테스트가 집합을 사용하는 것보다 빠릅니다. 그러나 목록이 크고 해시할 수 없는 요소가 많이 포함되어 있으면 이 이점이 줄어듭니다. 게다가 테스트 항목이 이미 세트에 저장되어 있는 경우 하위 세트 테스트를 사용하는 것이 훨씬 더 빠릅니다.
목록에서 여러 값의 멤버십을 테스트할 때 목록이 포함된 all 함수는 이해하는 것이 권장되는 접근 방식입니다. 세트는 특정 상황에서 유용할 수 있지만 제한 사항을 고려해야 합니다. 가장 최적의 접근 방식은 테스트되는 특정 상황과 데이터에 따라 다릅니다.
위 내용은 Python의 목록에서 여러 값을 효율적으로 확인하는 방법: 전체 vs 세트?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!