python中的布尔列表操作

Tan*_*ang 5 python arrays boolean-logic boolean list

结果应该不一样吗?我不明白.

[True,False] and [True, True]
Out[1]: [True, True]

[True, True] and [True,False]
Out[2]: [True, False]
Run Code Online (Sandbox Code Playgroud)

Kas*_*mvd 4

and不,因为这不是python 中操作的方式。首先,它没有and单独列出项目。其次,该and运算符在两个对象之间工作,如果其中一个为 False (计算为 False 1),则返回该对象,如果两者均为 True,则返回第二个对象。这是一个例子:

>>> [] and [False]
[]
>>> 
>>> [False] and []
[]
>>> [False] and [True]
[True]
Run Code Online (Sandbox Code Playgroud)

x and y: 如果x为假,则x, elsey

如果你想对所有列表对应用逻辑运算,你可以使用 numpy 数组:

>>> import numpy as np
>>> a = np.array([True, False])
>>> b = np.array([True, True])
>>> 
>>> np.logical_and(a,b)
array([ True, False], dtype=bool)
>>> np.logical_and(b,a)
array([ True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

1. 由于您正在处理列表,因此空列表将被评估为 False