Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi `any()` dan `all()` Python Berfungsi untuk Penilaian Kebenaran yang Cekap bagi Iterables?
Memahami Fungsi any() dan all() Python
Fungsi terbina dalam Python, any() dan all(), main peranan penting dalam menilai kebenaran nilai dalam sesuatu yang boleh diubah. Fungsi ini menawarkan cara yang ringkas dan cekap untuk menguji berbilang keadaan.
mana-mana () Fungsi
mana-mana() menentukan sama ada mana-mana elemen dalam lelaran adalah Benar. Ia mengembalikan True jika walaupun satu nilai True hadir; jika tidak, ia akan kembali Palsu.
Contoh:
my_list = [0, False, 'Hello', 1, ''] print(any(my_list)) # Outputs True as 'Hello' and 1 are True
Fungsi semua()
semua(), pada sebaliknya, menyemak sama ada setiap elemen dalam lelaran adalah Benar. Ia hanya mengembalikan Benar jika semua elemen adalah Benar; jika tidak, ia kembali Palsu.
Contoh:
my_list = [True, 1, 'True'] print(all(my_list)) # Outputs True as all elements are True
Kebenaran dan Penilaian Logik
mana-mana() dan semua () pada asasnya melaksanakan operasi logik ATAU dan DAN, masing-masing. Memahami tingkah laku kebenaran mereka adalah penting.
Jadual Kebenaran:
Iterable Values | any() | all() |
---|---|---|
All True | True | True |
All False | False | False |
Mixed True and False | True | False |
Empty Iterable | False | True |
Memahami Kod Anda
Dalam kod anda, anda menggunakan gabungan mana-mana() dan semua() untuk menyemak sama ada sebarang nilai dalam tuple adalah berbeza sambil memastikan bahawa tidak semua nilai adalah berbeza. Walau bagaimanapun, output yang anda jangkakan tidak diperoleh kerana salah faham dalam penilaian kod:
d = defaultdict(list) print(list(zip(*d['Drd2']))) # [(1, 1), (5, 6), (0, 0)] print([any(x) and not all(x) for x in zip(*d['Drd2'])]) # [False, False, False]
Dalam kes ini, sebarang(x) menyemak sama ada sebarang nilai dalam tuple adalah berbeza (iaitu, Benar), manakala semua(x) memastikan bahawa tidak semua nilai adalah berbeza (iaitu, Palsu). Memandangkan (1, 1), (5, 6), dan (0, 0) semuanya mempunyai nilai yang berbeza, ia menilai dengan betul ketiga-tiga tupel sebagai [False, False, False].
Untuk mencapai output yang anda inginkan , anda boleh mengubah suai kod seperti berikut:
print([x[0] != x[1] for x in zip(*d['Drd2'])]) # [False, True, False]
Ini secara langsung menyemak sama ada elemen pertama dan kedua dalam setiap tuple adalah berbeza, menghasilkan output yang dijangkakan [Salah, Betul, Salah].
Atas ialah kandungan terperinci Bagaimanakah Fungsi `any()` dan `all()` Python Berfungsi untuk Penilaian Kebenaran yang Cekap bagi Iterables?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!