Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi `any()` dan `all()` Python Berfungsi untuk Penilaian Kebenaran yang Cekap bagi Iterables?

Bagaimanakah Fungsi `any()` dan `all()` Python Berfungsi untuk Penilaian Kebenaran yang Cekap bagi Iterables?

Barbara Streisand
Barbara Streisandasal
2025-01-04 08:02:33467semak imbas

How Do Python's `any()` and `all()` Functions Work for Efficient Truthiness Evaluation of 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn