Menguji Keahlian Berbilang Nilai dalam Senarai Python
Dalam Python, menguji keahlian berbilang nilai dalam senarai menggunakan 'in' pengendali boleh membawa kepada hasil yang tidak dijangka. Pertimbangkan contoh berikut:
'a','b' in ['b', 'a', 'foo', 'bar'] ('a', True)
Hasil 'a', Benar menunjukkan bahawa 'a' hadir dalam senarai, tetapi ia tidak menyatakan sama ada 'b' turut hadir. Ini kerana Python menganggap ungkapan 'dalam' sebagai tuple, menghasilkan output yang ditunjukkan di atas.
Untuk menyemak dengan tepat sama ada 'a' dan 'b' hadir dalam senarai, anda boleh menggunakan yang berikut pendekatan:
all(x in ['b', 'a', 'foo', 'bar'] for x in ['a', 'b']) True
Ungkapan ini memastikan bahawa setiap elemen dalam senarai ['a', 'b'] terkandung dalam bekas ['b', 'a', 'foo', 'bar' ]. Jika mana-mana elemen tidak hadir, ungkapan akan mengembalikan Palsu.
Pilihan Alternatif
Selain fungsi 'semua', terdapat kaedah lain untuk melaksanakan semakan ini , tetapi mereka mungkin tidak serba boleh seperti pendekatan 'semua'.
Pertimbangan Kelajuan
Dalam situasi tertentu, ujian subset mungkin lebih pantas daripada 'semua' pendekatan, terutamanya apabila bekas dan item ujian adalah kecil. Walau bagaimanapun, perbezaan kelajuan keseluruhan tidak cukup besar untuk mewajarkan penggunaan besar ujian subset.
Adalah penting untuk ambil perhatian bahawa kelakuan 'dalam' bergantung pada jenis hujah sebelah kiri. Sebagai contoh, menggunakan 'masuk' dengan rentetan akan menggabungkan nilai dan bukannya menguji keahlian.
Memilih pendekatan terbaik untuk menguji keahlian berbilang nilai dalam senarai bergantung pada keperluan khusus, jenis data yang terlibat , dan pertimbangan prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Menguji dengan Tepat untuk Keahlian Berbilang Nilai dalam Senarai Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!