【发布时间】:2017-09-28 21:24:08
【问题描述】:
假设我有两个列表:
>>> y
[False, False, True, False, True, False, False, True, False, True, False, False]
>>> z
[False, True, True, True, True, True, False, False, False, False, False, True]
然后我执行以下操作:
>>> y or z
[False, False, True, False, True, False, False, True, False, True, False, False]
>>> z or y
[False, True, True, True, True, True, False, False, False, False, False, True]
正确答案不应该如下图吗?
[False, True, True, True, True, True, False, True, False, True, False, True]
and 我也得到了不正确的答案:
>>> y and z
[False, True, True, True, True, True, False, False, False, False, False, True]
>>> z and y
[False, False, True, False, True, False, False, True, False, True, False, False]
我测试了 1 和 0,结果很奇怪:
>>> y=[0,0,0,0,0]
>>> z=[1,1,1,1,1]
>>> y or z
[0, 0, 0, 0, 0]
>>> z or y
[1, 1, 1, 1, 1]
>>> y and z
[1, 1, 1, 1, 1]
>>> z and y
[0, 0, 0, 0, 0]
我做错了什么?
【问题讨论】:
-
尝试将您的列表包装在像
bool([False])这样的布尔调用中,以了解为什么会发生这种情况 -
正如答案所暗示的,
or不能以这种方式工作。然而numpy.logical_or确实像这样工作,所以可能对你有用。 docs.scipy.org/doc/numpy/reference/generated/…
标签: python list boolean operator-keyword