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>
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>
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>
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.
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!