如果我尝试
>>> from pylab import *
>>> b = [2, 3, 4, 5, 6, 7]
>>> a = any(x < 0 for x in b)
>>> print(a)
它不会返回True
或False
。
返回
<generator object <genexpr> at 0x7fbd62129ab0>
答案 0 :(得分:4)
您使用的是numpy.any()
,而不是内置的any()
。很可能你有from numpy import any
或from numpy import *
,这会导致这种行为。
为什么会这样?
根据documentation,any
测试是否有任何元素评估条件。但是,如果您查看source code,它实际上会返回asanarray()
结果generator
。
如何避免?
最好只导入scope
而不是方法本身,如下所示:import numpy as np
:)
更新1
就我个人而言,我从未使用iPython
,但感谢@Praveen和@hpaulj的评论,如果您使用--pylab
标记ipython
,您会看到相同的行为,你可以拒绝这种行为 - 从来不知道! :)))
答案 1 :(得分:2)
返回false
>> b = [2,3,4,5,6,7]
>>> b
[2, 3, 4, 5, 6, 7]
>>> a = any(x<0 for x in b)
>>> a
False
>>> print(a)
False