Rumah > Artikel > hujung hadapan web > Terangkan secara terperinci petua dan perangkap penggunaan adalah dan di mana pemilih
Huraikan petua dan perangkap penggunaan dan di mana pemilih
Seperti pemilih yang biasa digunakan, berada dan di mana sering ditemui semasa menulis kod. Fungsi mereka adalah serupa dan kedua-duanya digunakan untuk menapis data, tetapi terdapat juga beberapa teknik dan perangkap yang perlu diberi perhatian semasa penggunaan.
Pertama, mari kita lihat penggunaan pemilih adalah. Fungsi pemilih adalah untuk memilih elemen dengan nilai atribut tertentu daripada objek.
Kod sampel adalah seperti berikut:
data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'Tom', 'age':27}] result = [person for person in data if person['name'] == 'John'] print(result)
Hasil berjalan:
[{'name': 'John', 'age': 25}]
Dalam contoh, kami menggunakan pemilih is untuk menapis maklumat orang bernama John dalam data. Menggunakan pemahaman senarai, kami boleh menapis dengan cepat unsur-unsur yang memenuhi syarat.
Walau bagaimanapun, terdapat masalah yang perlu diperhatikan apabila menggunakan pemilih is: pemilih is membandingkan rujukan, bukan nilai. Jika kita mengubah sedikit kod sampel seperti berikut:
data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}] result = [person for person in data if person['name'] == 'John'] print(result)
Hasil berjalan:
[{'name': 'John', 'age': 25}, {'name': 'John', 'age': 27}]
Anda dapat melihat bahawa walaupun keadaan penapisan kami ialah orang bernama John, hasil yang ditapis sebenarnya termasuk dua orang bernama John. Ini kerana pemilih is membandingkan alamat memori, bukan nilai.
Untuk mengelakkan masalah ini, kita boleh menggunakan pemilih mana. Tempat pemilih membandingkan nilai dan lebih fleksibel.
Kod sampel adalah seperti berikut:
import operator data = [{'name':'John', 'age':25}, {'name':'Amy', 'age':22}, {'name':'John', 'age':27}] result = [person for person in data if operator.eq(person['name'], 'John')] print(result)
Hasil operasi:
[{'name': 'John', 'age': 25}]
Dalam contoh, kami menggunakan pemilih tempat untuk membandingkan nilai elemen melalui fungsi operator.eq untuk menapis maklumat tentang orang bernama John. Hanya elemen pertama yang memenuhi syarat dimasukkan dalam keputusan.
Apabila menggunakan pemilih tempat, sila ambil perhatian bahawa anda perlu mengimport modul pengendali dan menggunakan fungsi dalam modul untuk melaksanakan operasi perbandingan. Dengan cara ini, kita boleh membandingkan nilai elemen dengan tepat dan mengelakkan perangkap pemilih adalah.
Dalam pengaturcaraan sebenar, adalah sangat penting untuk memilih pemilih yang sesuai mengikut keperluan sebenar. Jika anda perlu membandingkan nilai, anda harus menggunakan pemilih tempat jika anda perlu membandingkan rujukan, anda boleh menggunakan pemilih ialah.
Ringkasnya, adalah dan tempat pemilih biasa digunakan pemilih untuk menapis data. Semasa penggunaan, sila ambil perhatian bahawa pemilih is membandingkan rujukan, manakala pemilih tempat membandingkan nilai. Pilih pemilih yang sesuai mengikut keperluan sebenar, dan perhatikan teknik penggunaan dan elakkan perangkap, supaya anda boleh menulis kod berkualiti tinggi dengan lebih baik.
Atas ialah kandungan terperinci Terangkan secara terperinci petua dan perangkap penggunaan adalah dan di mana pemilih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!