如何在 Python 中对布尔值取其否定值

使用 not 运算符来对布尔值取其否定值,例如 result = not my_bool。 not 运算符将否定布尔值,如果值为 False,则返回 True,如果值为 True,则返回 False。

import numpy as np

# ✅ Negate a boolean

my_bool = True

result = not my_bool
print(result)  # 👉️ False

# -----------------------------------
# ✅ Negate a list of booleans

my_list = [True, True, False, False]

result = [not item for item in my_list]
print(result) # 👉️ [False, False, True, True]

# --------------------------------

# ✅ Negate a numpy array of booleans

arr = np.array([True, True, False, False], dtype=bool)

result = np.logical_not(arr)
print(result)  # 👉️ [False False  True  True]

上述代码运行结果如下

如何在 Python 中对布尔值取其否定值

我们使用 not 运算符来否定布尔值。

print(not True)  # 👉️ False

print(not False)  # 👉️ True

如果值为假,则 not 运算符返回 True,如果值为真,则返回 False。

print(not True)  # 👉️ False
print(not False)  # 👉️ True
print(not 'hello')  # 👉️ False
print(not '')  # 👉️ True

所有不为真的值都被认为是假的。 Python 中的为假的值是:

  • 定义为假的常量:None 和 False。
  • 任何数字类型的 0(零)。
  • 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。

否定 Python 中的布尔值列表

要否定布尔值列表:

  1. 使用列表推导来迭代列表。
  2. 使用 not 运算符来否定每个布尔值。
  3. 新列表将包含原始列表中值的否定。
my_list = [True, True, False, False]

result = [not item for item in my_list]
print(result) # 👉️ [False, False, True, True]

我们使用列表推导来迭代布尔值列表。

列表推导用于对每个元素执行一些操作或选择满足条件的元素子集。

在每次迭代中,我们使用 not 运算符来翻转布尔值并返回结果。

新列表包含原始列表中值的否定。


否定一个布尔值的numpy数组

使用 numpy.logical_not() 方法来否定一个 numpy 布尔数组,例如 result = numpy.logical_not(arr)。 logical_not() 方法将逻辑非运算符应用于数组中的元素并返回结果。

import numpy as np


arr = np.array([True, True, False, False], dtype=bool)

result = np.logical_not(arr)
print(result)  # 👉️ [False False  True  True]

我们使用 numpy.logical_not 方法来否定一个 numpy 数组。

logical_not 方法将 not 运算符应用于数组的元素。

该方法返回一个新数组,其中包含原始数组中每个元素的否定。