"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 목록이 Python에서 항목을 공유하는지 어떻게 확인합니까?

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

2024-11-08에 게시됨
검색:899

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

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

소개

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

짧은 답변

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

상세 분석

방법 1: 교차점 설정

bool(set(a) & set(b))
  • 두 목록을 집합으로 변환한 다음 교차점을 확인합니다.
  • 집합으로 변환하면 추가 메모리가 소비되고 대규모 목록의 경우 상대적으로 느립니다. time.

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

any(i in a for i in b)
  • 하나의 목록을 반복하고 각 요소가 다른 목록에 속하는지 확인합니다.
  • 요소가 목록의 시작 부분에 있을 때는 빠르지만 공유 요소가 없는 목록이나 공유 요소가 끝에 있는 경우에는 비효율적입니다.

방법 3: 하이브리드(반복 및 멤버 집합)

a = set(a); any(i in a for i in b)
  • 한 목록을 집합으로 변환하고 다른 목록을 반복하여 집합의 구성원 여부를 확인합니다.
  • 일반적으로 다른 방법보다 느립니다.

방법 4: 집합의 Isdisjoint 방법

not set(a).isdisjoint(b)
  • 집합의 isdisjoint() 메서드를 활용하여 두 집합에 공통 요소가 있는지 확인합니다.
  • 공유 목록과 분리 목록 모두에 대해 빠르고 효율적이며, 특히 목록의 크기가 서로 다른 경우에 더욱 그렇습니다.

성능 비교

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

결론

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

릴리스 선언문 이 글은 1729382836에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3