Python 中(布尔列表)和(另一个布尔列表)的奇怪行为
Weird behavior of (boolean list) and (another boolean list) in Python
谁能解释一下这种奇怪的行为?
无论我的 IDE.
如何,在布尔列表之间操作 and
似乎都是错误的
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
a=[True, True, False, True, False, False, False]
b=[True, False, False, True, True, True, False]
a and b
Out[4]: [True, False, False, True, True, True, False]
b and a
Out[5]: [True, True, False, True, False, False, False]
True and False
Out[6]: False
False and True
Out[7]: False
and
returns 第一个或第二个操作数,基于它们的真值。如果第一个操作数被认为是 false,则返回它,否则返回另一个操作数。
当列表不为空时,列表被视为 True
。他们的元素在这里不起作用。
因为两个列表都不为空,a and b
只需 returns 第二个列表对象。
如果你想按元素操作,你可以这样做:
element-wise = [x and y for x, y in zip(a, b)] #suggested by @johnrsharpe
Python 的 and
将 return 最后一个比较的项目,如果所有比较的项目都是真实的(a and b
,b and a
)。 True and False
和 False and True
语句的计算结果为 False
(您的最后两个案例)。
谁能解释一下这种奇怪的行为?
无论我的 IDE.
如何,在布尔列表之间操作and
似乎都是错误的
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
a=[True, True, False, True, False, False, False]
b=[True, False, False, True, True, True, False]
a and b
Out[4]: [True, False, False, True, True, True, False]
b and a
Out[5]: [True, True, False, True, False, False, False]
True and False
Out[6]: False
False and True
Out[7]: False
and
returns 第一个或第二个操作数,基于它们的真值。如果第一个操作数被认为是 false,则返回它,否则返回另一个操作数。
当列表不为空时,列表被视为 True
。他们的元素在这里不起作用。
因为两个列表都不为空,a and b
只需 returns 第二个列表对象。
如果你想按元素操作,你可以这样做:
element-wise = [x and y for x, y in zip(a, b)] #suggested by @johnrsharpe
Python 的 and
将 return 最后一个比较的项目,如果所有比较的项目都是真实的(a and b
,b and a
)。 True and False
和 False and True
语句的计算结果为 False
(您的最后两个案例)。