我无法找到为什么any()在这里没有返回True。我认为这可能与numpy.any有关,而不是内置的any()函数,如here建议的那样。但是,我也试过调用任何__builtins __。any,但它仍然返回False。
导入numpy为np
import numpy as np
VCI=20
anom_con = [10,20,35,50]
print VCI<anom_con[3]
print VCI<any(anom_con)
收益:
True
False
有趣的是,我也在我的代码中使用any(),它在那里工作正常:
z=-0.668
z_con = [-2,-1.5,-1,1,1.5,2]
print z < any(z_con)
收益:
True
any
按预期工作,只是没有你预期的那样工作。
any
在找到一个评估为True
的元素后立即返回True
。如果是数字,则意味着一旦找到非零元素,它就会返回True
。
你打算写的是第一个例子中的any(num > VCI for num in anom_con)
和第二个例子中的any(num > z for num in z_con)
。
这个事实
z = -0.668
z_con = [-2,-1.5,-1,1,1.5,2]
print z < any(z_con)
输出“正确”的输出纯属巧合。它打印True
因为:
any(z_con)
评估为True
(因为z_con
至少有一个非零数字)z < True
评估为True
,因为True
的基础值为1,而-0.668 < 1
是True
。