>  기사  >  백엔드 개발  >  목록이 Python에서 항목을 공유하는지 어떻게 확인합니까?

목록이 Python에서 항목을 공유하는지 어떻게 확인합니까?

DDD
DDD원래의
2024-10-20 08:09:02779검색

How Do I Check if Lists Share Any Items in Python?

Python에서 목록이 항목을 공유하는지 테스트

소개

Python에서 여러 목록으로 작업할 때 요소가 겹치는지 확인해야 하는 경우가 많습니다. 그 목록 사이에. 이는 다양한 데이터 분석 및 조작 작업을 위한 기본 작업 역할을 합니다.

짧은 답변

Python에서 목록 중복 테스트에 권장되는 접근 방식은 not set(a).isdisjoint(b)를 활용하는 것입니다. ) 표현. 이는 이 작업에 대해 일반적으로 효율적이고 간결한 방법을 제공합니다.

상세 분석

방법 1: 교차점 설정

<code class="python">bool(set(a) & set(b))</code>
  • 전환 두 목록을 세트로 변환한 다음 교차점을 확인합니다.
  • 세트로 변환하면 추가 메모리와 시간이 소비되므로 특히 큰 목록의 경우 상대적으로 느립니다.

방법 2: 생성기 In 연산자를 사용한 표현식

<code class="python">any(i in a for i in b)</code>
  • 하나의 목록을 반복하고 각 요소가 다른 목록에 속하는지 확인합니다.
  • 요소가 목록의 시작 부분에 가까우면 빠릅니다. 그러나 공유 요소가 없는 목록이나 공유 요소가 끝에 있는 경우에는 비효율적입니다.

방법 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() 메서드를 활용하여 두 집합에 공통 요소가 있는지 확인합니다.
  • 공유 및 분리에 모두 빠르고 효율적입니다. 특히 목록의 크기가 서로 다른 경우 더욱 그렇습니다.

성능 비교

성능 테스트에 따르면 not set(a).isdisjoint(b)는 대부분의 경우, 특히 대규모 목록의 경우 탁월한 성능을 발휘하는 것으로 나타났습니다. 또는 공유 요소가 희박한 상황.

결론

Python에서 목록 중복을 테스트하려면 not set(a).isdisjoint(b) 표현식을 사용하는 것이 좋습니다. 이 표현식은 안정적이고 효율적이며, 다양한 목록 크기와 시나리오에 걸친 다목적 솔루션입니다.

위 내용은 목록이 Python에서 항목을 공유하는지 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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