python中的布尔列表操作[重复]

Posted

技术标签:

【中文标题】python中的布尔列表操作[重复]【英文标题】:Boolean list operation in python [duplicate] 【发布时间】:2016-07-13 04:42:39 【问题描述】:

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

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

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

【问题讨论】:

你想做什么? 什么?这些列表不应该是anded 价值明智的吗? [a and b for a, b in zip(x, y)],这就是我想要做的。 【参考方案1】:

不,因为这不是 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

【讨论】:

[a and b for a, b in zip(x, y)],谢谢,这也有效

以上是关于python中的布尔列表操作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

python中的数据类型及字符串操作

python数据类型(字符串列表操作)

Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在[重复]

python-字典

在python中的单个列表上使用多个变量(for循环)[重复]

Python:就地操作列表[重复]