Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi `any()` dan `all()` Python Bertindak Apabila Membandingkan Tuples?

Bagaimanakah Fungsi `any()` dan `all()` Python Bertindak Apabila Membandingkan Tuples?

Barbara Streisand
Barbara Streisandasal
2024-12-09 20:04:15639semak imbas

How Do Python's `any()` and `all()` Functions Behave When Comparing Tuples?

Cara mana-mana dan semua Fungsi Python Berfungsi

Apabila membandingkan tupel, kedua-dua fungsi terbina dalam any() dan all() dimasukkan ke dalam bermain. Begini cara mereka berbeza:

mana-mana()

mana-mana() menilai kepada Benar jika sekurang-kurangnya satu elemen dalam lelaran ialah Truthy (iaitu, bukan Palsu, 0, '', dsb.).

semua()

semua(), sebaliknya, mengembalikan True hanya apabila setiap elemen dalam lelaran adalah Truthy.

Memahami Kes Penggunaan

Dalam coretan kod disediakan:

print [any(x) and not all(x) for x in zip(*d['Drd2'])]

Setiap tupel dalam zip(*d['Drd2']) dinilai dalam konteks mana-mana(x) dan bukan semua(x). Walau bagaimanapun, output [Salah, Salah, Salah] yang tidak dijangka menimbulkan persoalan.

Tafsiran Ralat

Mengikut jadual kebenaran untuk mana-mana dan semua:

any(x) all(x) any(x) and not all(x)
True False True
False True False
True True False
False False False

Dalam kes ini, semua tupel terdiri daripada nombor yang sama (iaitu, nilai Benar), jadi sebarang(x) akan sentiasa Benar, dan semua(x) juga akan Benar. Akibatnya, mana-mana(x) dan bukan semua(x) hendaklah sentiasa menilai kepada Palsu, yang tidak ditunjukkan dalam output.

Punca Ralat

Ralat terletak dalam jangkaan yang salah bahawa (x[0] != x[1]) akan menjadi ungkapan Benar. Walau bagaimanapun, apabila nombor dalam tupel adalah sama (cth., (1, 1)), (x[0] != x[1]) menilai kepada Salah.

Logik Betul

Untuk menentukan dengan tepat sama ada sebarang nilai dalam tuple adalah berbeza, anda boleh menggunakan yang berikut logik:

print [x[0] != x[1] for x in zip(*d['Drd2'])]

Ungkapan ini membandingkan dengan betul elemen yang sepadan bagi setiap tuple untuk mengenal pasti sebarang perbezaan, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `any()` dan `all()` Python Bertindak Apabila Membandingkan Tuples?. 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