Python 逻辑 `and` 比较列表返回错误结果

标签 python boolean-logic

y1 = [True, True, False, False]
y2 = [False, True, True, False]
y3 = y1 and y2

print(y3)
>>> [False, True, True, False]

这是怎么回事?操作中的第三项是 FalseTrue,这会导致 True?

最佳答案

X 和 Y 计算为:

  • X(如果 X)
  • Y(如果 Xtruthy)

任何非空列表都是真实的。

如果

y1 = [True, True, False, False]

y2 = [False, True, True, False]

然后 y1 和 y2 的计算结果为 y2,即 [False, True, True, False]

如果你想你列表中的个别元素,你可以用zip来完成。和一个 list comprehension :

y3 = [x1 and x2 for x1,x2 in zip(y1,y2)]

关于Python 逻辑 `and` 比较列表返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50927994/

相关文章:

mysql - 如何对单个列执行 AND 运算?

algorithm - LUP - bool 矩阵的分解 : any pointers

python - 在 Python 中将 QVariant 转换回 dict

python - 使用 SQLAlchemy 转义文件路径中的特殊字符

python - 如何在 python 中组合 .tif 堆栈?

javascript - 检查该变量是否为 bool 值的 if 语句结果为 "boolean != boolean"

string - 迭代发现定义向量条件的 bool 规则的算法

python - waitForPageToLoad 的任何替代方案

Python/Numpy/Scipy - 将字符串转换为数学函数

C++ 当 bool 改变时触发函数