>  기사  >  백엔드 개발  >  Python의 목록에서 여러 값을 효율적으로 확인하는 방법: 전체 vs 세트?

Python의 목록에서 여러 값을 효율적으로 확인하는 방법: 전체 vs 세트?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 04:44:30478검색

How to Efficiently Check for Multiple Values in a List in Python: All vs Sets?

목록의 멤버십에 대한 여러 값 테스트

여러 값이 목록에 속하는지 확인하려고 하면 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 Python의 ',' 연산자를 사용하여 멤버십을 테스트하면 예기치 않은 튜플이 반환될 수 있습니다.

<code class="python">'a','b' in ['b', 'a', 'foo', 'bar']
('a', True)</code>

Python의 "all" 함수

여러 값의 멤버십을 정확하게 테스트하려면 다음에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.