Menolak Dua Senarai Dengan Cekap
Mengalih keluar elemen daripada satu senarai berdasarkan kehadirannya dalam senarai kedua boleh menjadi tugas yang membosankan. Untuk mengatasi cabaran ini, Python menawarkan penyelesaian yang cekap menggunakan ciri kefahaman senarainya yang berkuasa.
Pertimbangkan tugas melaksanakan l1 - l2, di mana l1 dan l2 ialah dua senarai yang diberikan. Menggunakan pendekatan gelung naif, operasi ini memerlukan lelaran melalui setiap elemen l1 dan menyemak kehadirannya dalam l2, menghasilkan kerumitan masa O(mn), di mana m ialah panjang l1 dan n ialah panjang l2.
Walau bagaimanapun, pemahaman senarai Python menyediakan cara yang elegan dan cekap untuk mencapai hasil yang sama dengan kerumitan masa O(n). Coretan kod berikut menunjukkan perkara ini:
l3 = [x for x in l1 if x not in l2]
Dalam kod ini, pemahaman senarai berulang melalui setiap elemen x dalam l1 dan menyemak sama ada ia hadir dalam l2. Jika x tiada dalam l2, ia termasuk dalam senarai l3 yang terhasil. Pelaksanaan ini membolehkan cara yang ringkas dan sangat cekap untuk melaksanakan penolakan senarai dalam Python.
Sebagai contoh, diberikan l1 = [1, 2, 6, 8] dan l2 = [2, 3, 5, 8] , kod di atas akan mengembalikan l3 yang mengandungi [1, 6], dengan berkesan mengeluarkan unsur-unsur yang terdapat dalam l2 daripada l1. Ini menunjukkan kuasa pemahaman senarai dalam memudahkan operasi kompleks dalam Python.
Atas ialah kandungan terperinci Bagaimanakah Pemahaman Senarai Python Boleh Menolak Satu Senarai dengan Yang Lain dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!