Pythonic Check for Negative Elements in a List
Python menyediakan fungsi serba boleh dipanggil any() yang berguna untuk menyemak keadaan merentasi urutan unsur. Dalam kes ini, kami ingin menentukan sama ada mana-mana elemen dalam senarai adalah negatif.
Menggunakan 'any()':
if any(t < 0 for t in x): # do something
Fungsi any() mengambil ungkapan penjana sebagai hujah, dalam kes ini (t < 0 untuk t dalam x). Bagi setiap elemen t dalam senarai x, ungkapan penjana ini menghasilkan Benar jika t negatif, jika tidak ia menghasilkan Salah. Fungsi any() menilai ungkapan penjana ini dan mengembalikan True jika sekurang-kurangnya satu elemen menghasilkan True.
Menggunakan 'True dalam ...':
Walaupun betul dari segi teknikal , pendekatan menggunakan True dalam ... tidak dianggap Pythonic kerana ia boleh menjadi tidak cekap. Daripada kembali awal, ungkapan penjana akan berpusing melalui keseluruhan jujukan, yang berpotensi membazir sumber.
Jika anda mesti menggunakan True dalam ..., bungkus ungkapan penjana dalam pemahaman penjana untuk kecekapan memori:
if True in (t < 0 for t in x):
Dengan pendekatan ini, pemahaman penjana hanya berkembang mengikut keperluan dan tidak menggunakan yang tidak perlu ingatan.
Ingat, apabila menyemak keadaan positif, anda boleh memanfaatkan undang-undang De Morgan untuk menggunakan bukan sebarang() atau semua(), yang mengembalikan True apabila semua elemen memenuhi syarat tersebut.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Secara Python sama ada Senarai Mengandungi Sebarang Unsur Negatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!