Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Fungsi `mana-mana` dan `semua` Python berfungsi dalam Pemahaman Senarai, dan Mengapa Ini Mungkin Mengembalikan `[False, False, False]`?

Bagaimanakah Fungsi `mana-mana` dan `semua` Python berfungsi dalam Pemahaman Senarai, dan Mengapa Ini Mungkin Mengembalikan `[False, False, False]`?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 01:19:13539semak imbas

How Do Python's `any` and `all` Functions Work in List Comprehension, and Why Might This Return `[False, False, False]`?

Memahami mana-mana dan semua Fungsi Python

Sebarang dan semua Python ialah fungsi terbina dalam yang menilai iterable dan mengembalikan nilai boolean berdasarkan kebenaran mereka elemen.

mana-mana

sebarang pulangan Benar jika sekurang-kurangnya satu elemen dalam lelaran ialah Benar (atau bukan sifar untuk nilai berangka). Ia menilai boleh lelar sehingga nilai True ditemui atau semua elemen telah habis.

semua

semua kembali True hanya jika semua elemen dalam leterable adalah Benar. Jika iterable kosong, semua akan kembali True. Ia terus menilai yang boleh diubah sehingga nilai Palsu ditemui atau semua elemen telah diperiksa.

kebenaran

Memahami kebenaran adalah penting untuk memahami bagaimana semua dan semua berfungsi. Dalam Python, nilai dianggap Benar jika ia bukan sifar, rentetan kosong atau Tiada (Null). Nilai Falsey termasuk 0, bekas kosong dan False sendiri.

Kod Anda

Dalam kod anda, anda menggunakan pemahaman senarai:

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

Untuk memahami ungkapan ini, mari kita patahkan bawah:

  • zip(*d['Drd2']): mencipta senarai tupel dengan mengumpulkan elemen yang sepadan daripada senarai berbeza dalam d['Drd2'].
  • untuk x dalam zip(*d['Drd2']): lelaran atas tupel dalam senarai tupel yang dibuat.
  • mana-mana(x): menilai jika mana-mana elemen dalam tuple tertentu adalah Benar.
  • bukan semua(x): menilai jika tidak semua elemen dalam tuple tertentu adalah Benar.
  • dan: menggabungkan hasil ungkapan sebelumnya.

Mengapa Salah Dikembalikan

Kod anda dikembalikan [False, False, False] kerana ia menyemak sama ada sekurang-kurangnya satu nilai adalah Benar dan pada masa yang sama tidak semua nilai adalah Benar untuk setiap tupel dalam senarai tupel. Memandangkan tupel dalam d['Drd2'] mempunyai unsur yang sama, semua(x) adalah Benar untuk setiap tupel, menjadikan tidak semua(x) Salah. Akibatnya, ungkapan keseluruhan menjadi mana-mana(x) dan bukan semua(x) dinilai kepada False untuk setiap tuple.

Atas ialah kandungan terperinci Bagaimanakah Fungsi `mana-mana` dan `semua` Python berfungsi dalam Pemahaman Senarai, dan Mengapa Ini Mungkin Mengembalikan `[False, False, False]`?. 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