Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menguji dengan Tepat untuk Keahlian Berbilang Nilai dalam Senarai Python?

Bagaimana untuk Menguji dengan Tepat untuk Keahlian Berbilang Nilai dalam Senarai Python?

Susan Sarandon
Lepaskan: 2024-10-28 18:32:29
asal
1077 orang telah melayarinya

How to Accurately Test for the Membership of Multiple Values in a Python List?

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

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

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

  • Set Intersection: Set boleh digunakan untuk menguji keahlian menggunakan kaedah 'issubset'. Walau bagaimanapun, set hanya boleh mengandungi elemen boleh cincang, yang mengehadkan kebolehgunaannya pada jenis data tertentu.
  • Ungkapan Penjana: Ungkapan penjana boleh digunakan untuk melaksanakan operasi yang sama seperti 'semua', tetapi ia mungkin tidak mengendalikan semua jenis input dengan berkesan.

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!

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