Bagaimana Saya Semak jika Senarai Berkongsi Sebarang Item dalam Python?

DDD
Lepaskan: 2024-10-20 08:09:02
asal
851 orang telah melayarinya

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>
Salin selepas log masuk
  • 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>
Salin selepas log masuk
  • 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>
Salin selepas log masuk
  • 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>
Salin selepas log masuk
  • 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!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan