Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Fungsi `mana-mana` dan `semua` Python Berfungsi, dan Mengapa Perbandingan Tuples Saya Gagal?

Bagaimanakah Fungsi `mana-mana` dan `semua` Python Berfungsi, dan Mengapa Perbandingan Tuples Saya Gagal?

Mary-Kate Olsen
Lepaskan: 2024-12-11 04:35:13
asal
1008 orang telah melayarinya

How Do Python's `any` and `all` Functions Work, and Why Did My Comparison of Tuples Fail?

Memahami Gelagat mana-mana dan semua Fungsi Python

Sebarang dan semua Python menyediakan cara yang mudah untuk menilai kebenaran pelbagai elemen dalam satu lelaran . sebarang mengembalikan Benar jika mana-mana elemen adalah Benar, manakala semua mengembalikan Benar hanya jika semua elemen adalah Benar.

sebarang vs. semua

Secara intuitif, mana-mana elemen boleh digambarkan sebagai siri operator OR logik (||), dan semuanya sebagai satu siri operator AND logik (&&). Pemahaman ini membantu menjelaskan fungsinya:

  • mana-mana: Sekurang-kurangnya satu elemen Truthy menghasilkan nilai pulangan Benar. Iterables kosong menilai kepada False.
  • semua: Hanya apabila semua elemen adalah Benar, semua akan kembali Benar. Sekali lagi, iterables kosong menghasilkan True.

Litar Pintas

Aspek penting dalam mana-mana dan semua ialah tingkah laku litar pintas mereka. Mereka menilai elemen secara berurutan sehingga mereka dapat menentukan hasilnya. Pengoptimuman ini menghalang traversal yang tidak perlu bagi keseluruhan lelaran.

Aplikasi dalam Contoh Diberi

Dalam contoh yang diberikan, kami menyasarkan untuk membandingkan tupel untuk menentukan sama ada sebarang nilai berbeza dan cetak Benar dalam kes itu. Output yang dijangkakan hendaklah [Salah, Benar, Salah]. Walau bagaimanapun, keputusan sebenar yang diperoleh ialah [False, False, False]. Percanggahan ini timbul daripada ungkapan yang digunakan:

[any(x) and not all(x) for x in zip(*d['Drd2'])]
Salin selepas log masuk

Ungkapan dalam kurungan dinilai kepada Benar hanya jika sekurang-kurangnya satu elemen dalam tupel adalah Benar tetapi tidak semua elemen adalah Benar. Dalam kes yang disediakan, tiada tupel mengandungi nilai sedemikian. Oleh itu, hasilnya adalah salah [False, False, False].

Pelaksanaan Betul

Untuk mencapai tingkah laku yang dimaksudkan, seseorang boleh menggunakan ungkapan berikut sebagai ganti:

[x[0] != x[1] for x in zip(*d['Drd2'])]
Salin selepas log masuk

Ungkapan ini membandingkan secara langsung elemen pertama dan kedua setiap tupel, mengembalikan True jika ia berbeza. Akibatnya, output [Salah, Benar, Salah] yang diingini akan diperolehi.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `mana-mana` dan `semua` Python Berfungsi, dan Mengapa Perbandingan Tuples Saya Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan