您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

两个布尔列表上的Python AND运算符-如何?

两个布尔列表上的Python AND运算符-如何?

and只需根据它们的真实值返回第一个或第二个操作数。如果第一个操作数被认为是假,则返回它,否则返回另一个操作数。

名单被认为是 真实的 ,当 不为空 ,那么这两个列表被认为是真实的。它们的内容 在这里不起作用

由于两个列表都不为空,因此x and y只需返回第二个列表对象;仅当x为空时,才返回:

>>> [True, False] and ['foo', 'bar']
['foo', 'bar']
>>> [] and ['foo', 'bar']
[]

请参阅Python文档中的“ 真值测试” 部分

可以测试任何对象的真值,用在ifwhile条件中或用作以下布尔运算的操作数。以下值为“假”:

[…]

[…]

-因此许多类型的对象总是真实的。

(重点是我的),以及其下方的 布尔运算 部分

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

这是一个短路运算符,因此,如果第一个参数为,则它仅计算第二个参数True

您确实需要显式测试列表中 包含 的值。如您所见,您可以通过列表理解来做到这一点。您可以使用zip()函数将其重写以配对值:

[a and b for a, b in zip(x, y)]
python 2022/1/1 18:31:50 有203人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶