Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `dan` dan `&` Berbeza Apabila Digunakan dengan Senarai dan Tatasusunan NumPy dalam Python?

Bagaimanakah `dan` dan `&` Berbeza Apabila Digunakan dengan Senarai dan Tatasusunan NumPy dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-11-26 05:22:14
asal
971 orang telah melayarinya

How Do `and` and `&` Differ When Used with Lists and NumPy Arrays in Python?

Memahami Gelagat Operasi Boolean dan Bitwise pada Lists vs. NumPy Arrays

Pengenalan

Dalam Python, pengendali 'dan' dan '&' berbeza dalam kelakuannya apabila digunakan pada senarai dan tatasusunan NumPy. Perbezaan ini boleh membingungkan, terutamanya jika anda tidak biasa dengan operasi bitwise.

Operasi Boolean vs. Bitwise

'dan' ialah pengendali logik yang menguji sama ada kedua-duanya operannya secara logiknya Benar. '&', sebaliknya, ialah pengendali bitwise yang melakukan operasi bitwise (cth., AND, OR, XOR) pada operannya.

Gelagat dengan Senarai

Apabila digunakan dengan senarai, 'dan' menilai item senarai sebagai nilai boolean. Jika semua item adalah Benar, 'dan' menilai kepada Benar; jika tidak, ia menilai kepada Palsu. Contohnya:

mylist1 = [True, True, True, False, True]
mylist2 = [False, True, False, True, False]

mylist1 and mylist2  # Output: [False, True, False, True, False]
Salin selepas log masuk

'&', walau bagaimanapun, tidak menyokong operasi bitwise pada senarai. Ia menimbulkan TypeError kerana senarai mengandungi unsur arbitrari.

mylist1 & mylist2  # Output: TypeError: unsupported operand type(s)
Salin selepas log masuk

Gelagat dengan Tatasusunan NumPy

Dengan tatasusunan NumPy, gelagatnya berbeza. Tatasusunan NumPy menyokong pengiraan bervektor, bermakna operasi boleh dilakukan pada berbilang elemen serentak.

'dan' tidak boleh digunakan pada tatasusunan NumPy dengan panjang lebih daripada satu kerana tatasusunan tidak mempunyai nilai boolean yang mudah.

import numpy as np

np_array1 = np.array(mylist1)
np_array2 = np.array(mylist2)

np_array1 and np_array2  # Output: ValueError: The truth value of an array with more than one element is ambiguous
Salin selepas log masuk

Walau bagaimanapun, '&' boleh digunakan pada tatasusunan NumPy boolean untuk melaksanakan operasi DAN bitwise dari segi elemen.

np_array1 & np_array2  # Output: array([False, True, False, False, False], dtype=bool)
Salin selepas log masuk

Ringkasan

  • Gunakan 'dan' untuk membandingkan nilai boolean atau menilai ungkapan logik.
  • Gunakan ' &' untuk melaksanakan operasi bitwise pada integer atau boolean NumPy tatasusunan.
  • Senarai tidak boleh digabungkan menggunakan '&' kerana ia boleh mengandungi unsur sewenang-wenangnya.
  • Tatasusunan NumPy boleh menyokong operasi bitwise vektor dengan '&' tetapi mengendalikan 'dan' secara berbeza daripada senarai disebabkan oleh sifat vektor mereka.

Atas ialah kandungan terperinci Bagaimanakah `dan` dan `&` Berbeza Apabila Digunakan dengan Senarai dan Tatasusunan NumPy dalam Python?. 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