Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Saya Semak jika Senarai Berkongsi Sebarang Item dalam Python?

Bagaimana Saya Semak jika Senarai Berkongsi Sebarang Item dalam Python?

DDD
DDDasal
2024-10-20 08:09:02778semak imbas

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

Uji sama ada Senarai Berkongsi Sebarang Item dalam Python

Pengenalan

Apabila bekerja dengan berbilang senarai dalam Python, selalunya perlu untuk menentukan sama ada sebarang elemen bertindih antara senarai tersebut. Ini berfungsi sebagai operasi asas untuk pelbagai tugas analisis dan manipulasi data.

Jawapan Ringkas

Pendekatan yang disyorkan untuk pertindihan senarai ujian dalam Python ialah menggunakan not set(a).isdisjoint(b ) ungkapan. Ia menawarkan kaedah yang cekap dan ringkas secara amnya untuk tugasan ini.

Analisis Terperinci

Kaedah 1: Tetapkan Persimpangan

<code class="python">bool(set(a) & set(b))</code>
  • Penukar kedua-dua senarai kepada set, kemudian semak persimpangannya.
  • Agak perlahan, terutamanya untuk senarai besar, kerana menukar kepada set menggunakan memori dan masa tambahan.

Kaedah 2: Penjana Ungkapan dengan In Operator

<code class="python">any(i in a for i in b)</code>
  • Lelaran melalui satu senarai dan menyemak setiap elemen untuk keahlian dalam senarai yang lain.
  • Cepat apabila elemen berada berhampiran permulaan senarai tetapi tidak cekap untuk senarai tanpa elemen kongsi atau apabila elemen kongsi berada di penghujungnya.

Kaedah 3: Hibrid (Lelaran dan Keahlian Set)

<code class="python">a = set(a); any(i in a for i in b)</code>
  • Menukar satu senarai kepada set dan berulang melalui senarai lain, menyemak keahlian dalam set.
  • Secara amnya lebih perlahan daripada kaedah lain.

Kaedah 4: Isdisjoint Kaedah Set

<code class="python">not set(a).isdisjoint(b)</code>
  • Menggunakan kaedah isdisjoint() bagi set untuk menentukan sama ada dua set mempunyai sebarang elemen sepunya.
  • Pantas dan cekap untuk kedua-dua kongsi dan berpisah senarai, terutamanya apabila senarai mempunyai saiz yang berbeza.

Perbandingan Prestasi

Ujian prestasi mendedahkan bahawa bukan set(a).isdisjoint(b) cemerlang dalam kebanyakan kes, terutamanya untuk senarai besar atau situasi di mana elemen yang dikongsi adalah jarang.

Kesimpulan

Untuk pertindihan senarai ujian dalam Python, pertimbangkan untuk menggunakan ungkapan not set(a).isdisjoint(b) kerana ia menyediakan yang boleh dipercayai, cekap, dan penyelesaian serba boleh merentas pelbagai saiz senarai dan senario.

Atas ialah kandungan terperinci Bagaimana Saya Semak jika Senarai Berkongsi Sebarang Item dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn