Bagaimana untuk Memeriksa Berbilang Nilai dengan Cekap dalam Senarai dalam Python: Semua vs Set?

Susan Sarandon
Lepaskan: 2024-11-02 04:44:30
asal
555 orang telah melayarinya

How to Efficiently Check for Multiple Values in a List in Python: All vs Sets?

Menguji Berbilang Nilai untuk Keahlian dalam Senarai

Apabila cuba menyemak sama ada berbilang nilai tergolong dalam senarai, anda mungkin menemui hasil yang tidak dijangka. Sebagai contoh, menguji keahlian menggunakan pengendali ',' Python mungkin mengembalikan tuple yang tidak dijangka.

<code class="python">'a','b' in ['b', 'a', 'foo', 'bar']
('a', True)</code>
Salin selepas log masuk

Fungsi "semua" Python

Untuk menguji keahlian berbilang nilai dengan tepat, gunakan semua fungsi Python dalam bersama dengan pemahaman senarai, seperti yang ditunjukkan di bawah:

<code class="python">all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b'])
True</code>
Salin selepas log masuk

Pendekatan Alternatif

Set

Set juga boleh digunakan untuk ujian keahlian. Walau bagaimanapun, mereka mempunyai batasan. Contohnya, mereka tidak boleh mengendalikan elemen yang tidak boleh dicincang seperti senarai.

<code class="python">{'a', 'b'} <= {'a', 'b', 'foo', 'bar'}
True

{'a', ['b']} <= {'a', ['b'], 'foo', 'bar'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'</code>
Salin selepas log masuk

Perbandingan Kelajuan

Dalam kebanyakan kes, ujian subset menggunakan fungsi semua adalah lebih pantas daripada menggunakan set. Walau bagaimanapun, kelebihan ini berkurangan apabila senarainya besar dan mengandungi banyak elemen tidak boleh dicincang. Selain itu, jika item ujian sudah disimpan dalam satu set, menggunakan ujian subset akan menjadi lebih pantas dengan ketara.

Kesimpulan

Apabila menguji keahlian berbilang nilai dalam senarai, fungsi semua dengan senarai kefahaman adalah pendekatan yang disyorkan. Set boleh berguna dalam situasi tertentu, tetapi batasannya harus dipertimbangkan. Pendekatan yang paling optimum bergantung pada konteks khusus dan data yang sedang diuji.

Atas ialah kandungan terperinci Bagaimana untuk Memeriksa Berbilang Nilai dengan Cekap dalam Senarai dalam Python: Semua vs Set?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan