> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 목록 및 NumPy 배열과 함께 사용할 때 `and`와 `&`는 어떻게 다릅니까?

Python에서 목록 및 NumPy 배열과 함께 사용할 때 `and`와 `&`는 어떻게 다릅니까?

Mary-Kate Olsen
풀어 주다: 2024-11-26 05:22:14
원래의
970명이 탐색했습니다.

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

목록과 NumPy 배열의 부울 및 비트 연산 동작 이해

소개

파이썬에서는 'and'와 '&' 연산자가 다릅니다. 목록과 NumPy 배열에서 사용될 때의 동작. 특히 비트 연산에 익숙하지 않은 경우 이러한 차이는 혼란스러울 수 있습니다.

부울 대 비트 연산

'and'는 둘 다 여부를 테스트하는 논리 연산자입니다. 피연산자의 수가 논리적으로 True입니다. 반면 '&'는 피연산자에 대해 비트 연산(예: AND, OR, XOR)을 수행하는 비트 연산자입니다.

목록 동작

목록과 함께 사용되는 경우 'and'는 목록 항목을 부울 값으로 평가합니다. 모든 항목이 True인 경우 'and'는 True로 평가됩니다. 그렇지 않으면 False로 평가됩니다. 예를 들어

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

mylist1 and mylist2  # Output: [False, True, False, True, False]
로그인 후 복사

'&'는 목록에 대한 비트 연산을 지원하지 않습니다. 목록에 임의의 요소가 포함되어 있기 때문에 TypeError가 발생합니다.

mylist1 & mylist2  # Output: TypeError: unsupported operand type(s)
로그인 후 복사

NumPy 배열의 동작

NumPy 배열의 동작은 다릅니다. NumPy 배열은 벡터화된 계산을 지원합니다. 즉, 여러 요소에 대해 연산을 동시에 수행할 수 있습니다.

배열에는 간단한 부울 값이 없으므로 길이가 1보다 큰 NumPy 배열에는 'and'를 사용할 수 없습니다.

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
로그인 후 복사

그러나 NumPy 부울 배열에서 '&'를 사용하여 비트 AND 연산을 수행할 수 있습니다. 요소별.

np_array1 & np_array2  # Output: array([False, True, False, False, False], dtype=bool)
로그인 후 복사

요약

  • 부울 값을 비교하거나 논리식을 평가하려면 'and'를 사용하세요.
  • '를 사용하세요. &'는 정수 또는 부울 NumPy에 대해 비트 연산을 수행합니다.
  • 목록은 임의의 요소를 포함할 수 있으므로 '&'를 사용하여 결합할 수 없습니다.
  • NumPy 배열은 '&'를 사용하여 벡터화된 비트 연산을 지원할 수 있지만 'and'를 목록과 다르게 처리할 수 있습니다. 벡터화되어 있습니다.

위 내용은 Python에서 목록 및 NumPy 배열과 함께 사용할 때 `and`와 `&`는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿