Python 목록에서 여러 값의 멤버십을 테스트하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-28 04:37:30
원래의
480명이 탐색했습니다.

How to Test Membership of Multiple Values in a Python List?

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

질문:

어떻게 테스트할 수 있나요? 여러 값이 Python에서 목록의 구성원인 경우? 예상되는 결과는 각 값의 멤버십을 나타내는 부울 값을 반환하는 것이지만 현재 접근 방식에서는 예상치 못한 출력이 생성됩니다.

설명:

제공된 코드 조각 ' ['b', 'a', 'foo', 'bar']의 a','b'는 Python이 이를 개별 값에 대한 멤버십 테스트가 아닌 튜플로 해석하기 때문에 의도한 대로 작동하지 않습니다.

답변:

목록에 있는 여러 값의 구성원 자격을 올바르게 테스트하려면 다음 표현식을 사용하세요.

<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])</code>
로그인 후 복사

목록에 있는 모든 값이 True인 경우 True를 반환합니다. 두 번째 목록은 첫 번째 목록의 구성원이고 그렇지 않으면 False입니다.

기타 옵션:

세트 사용:

<code class="python">set(['a', 'b']).issubset(set(['a', 'b', 'foo', 'bar']))
{'a', 'b'} <= {'a', 'b', 'foo', 'bar'}</code>
로그인 후 복사

이 방법은 목록의 요소가 해시 가능한 경우에는 잘 작동하지만 목록이 큰 경우에는 비효율적일 수 있습니다.

속도 테스트:

벤치마크 결과는 다음과 같습니다. 하위 집합 테스트(집합 사용)는 일반적으로 all 표현식보다 빠르지만 목록이 작거나 하위 집합 작업이 집합과 함께 사용되지 않는 한 그 차이는 크지 않습니다. 그러나 목록의 요소가 해시 가능하지 않거나 목록이 큰 경우 all 표현식이 더 효율적일 수 있습니다.

결론:

all 표현식 사용 이는 일반적으로 목록의 여러 값을 테스트하는 데 좋은 방법입니다. 특히 요소가 해시 가능하지 않고 효율성이 중요한 경우에는 더욱 그렇습니다. 요소가 해시 가능하고 목록이 작은 경우 하위 집합 테스트를 통해 약간의 속도 이점을 얻을 수 있습니다.

위 내용은 Python 목록에서 여러 값의 멤버십을 테스트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿