Python에서 한 목록의 요소가 다른 목록에 있는지 확인하는 것은 다양한 데이터 조작 작업에 필수적입니다. 이 문서에서는 이러한 중복을 테스트하고 효율성을 평가하며 모범 사례를 제공하는 다양한 방법을 살펴봅니다.
1. 생성기 표현식
<code class="python">any(i in a for i in b)</code>
이 메서드는 한 목록을 반복하고 다른 목록의 멤버십을 확인하여 일치하는 항목이 있으면 True를 반환합니다. 시간 복잡도는 O(n)이며, 여기서 n은 더 큰 목록의 길이입니다.
2. 교차점 설정
<code class="python">bool(set(a) & set(b))</code>
이 접근 방식은 두 목록을 모두 집합으로 변환하고 교차점을 찾습니다. 교차점이 비어 있지 않으면 True를 반환합니다. 이에 대한 최악의 시간 복잡도는 O(n·m)이며, 여기서 n과 m은 목록의 길이입니다.
3. 하이브리드 집합 교차
<code class="python">a = set(a) any(i in a for i in b)</code>
이 방법은 한 목록만 집합으로 변환하고 다른 목록을 반복하여 집합 멤버십을 확인합니다. 중간 집합 생성을 방지하여 기존 집합 교차보다 속도가 빠릅니다.
4. Isdisjoint 방법
<code class="python">not set(a).isdisjoint(b)</code>
이 접근 방식은 고정 집합의 isdisjoint 방법을 사용하여 공통 요소가 있는지 확인합니다. 그렇지 않은 경우 결과는 False입니다. 그렇지 않으면 True입니다.
최악의 경우:
대부분의 경우 isdisjoint 메서드는 상수 시간 집합 멤버십 검사의 이점을 누리므로 가장 빠릅니다.
생성기 표현식의 최상의 사례:
고려할 요소:
위 내용은 Python에서 한 목록의 요소가 다른 목록의 요소와 겹치는지 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!