python中的布尔列表操作

时间:2016-03-25 12:12:49

标签: python arrays list boolean boolean-logic

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

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

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

1 个答案:

答案 0 :(得分:2)

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

>>> [] and [False]
[]
>>> 
>>> [False] and []
[]
>>> [False] and [True]
[True]
  

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

如果要对所有列表对应用逻辑运算,可以使用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)

<子> 1.由于您处理列表,因此空列表将被评估为False