Menyemak Kewujudan Elemen Rentetan dalam Senarai dalam Python
Soalan ini mencari kaedah yang elegan untuk menentukan sama ada rentetan mengandungi elemen daripada yang ditentukan senarai tanpa menggunakan gelung for. Kod berikut menunjukkan isu:
<code class="python">extensionsToCheck = ['.pdf', '.doc', '.xls'] for extension in extensionsToCheck: if extension in url_string: print(url_string)</code>
Percubaan pengguna untuk menggunakan operator OR logik, seperti dalam C/C , gagal memberikan hasil yang diingini.
Penyelesaian Elegan Menggunakan Penjana dan Mana-mana
Penyelesaian yang lebih canggih memanfaatkan penjana dan sebarang fungsi, yang menilai kepada Benar sebaik sahaja mana-mana elemen dalam senarai ditemui dalam rentetan:
<code class="python">if any(ext in url_string for ext in extensionsToCheck): print(url_string)</code>
Dalam kod ini, ungkapan penjana menghasilkan satu siri nilai boolean yang menunjukkan sama ada setiap elemen dalam extensionsToCheck wujud dalam url_string. Mana-mana fungsi kemudian mengembalikan True jika mana-mana nilai boolean ini adalah True.
Berhati-hati Apabila Menyemak Kedudukan Tamat
Adalah penting untuk ambil perhatian bahawa penyelesaian ini tidak mengambil kira kedudukan rentetan yang sepadan dalam url_string. Sebagai contoh, jika senarai mengandungi .com dan rentetan yang sedang diperiksa ialah example.company.com, penyelesaiannya akan mengembalikan True walaupun .com muncul di tengah rentetan.
Jika lokasi tepat bagi rentetan padanan adalah kebimbangan, seperti yang sering berlaku dengan URL, pertimbangkan untuk menggunakan penyelesaian yang disediakan oleh @Wladimir Palant, yang melibatkan pemeriksaan sambungan fail dalam konteks URL.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada String Mengandungi Elemen daripada Senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!