Python any() 条件未返回正确的输出

Python any() condition not returning correct output

我不知道为什么 any() 在这里没有返回 True。我认为它可能与 numpy.any 而不是内置的 any() 函数有关,正如建议的那样 here。但是,我也尝试将任何调用为 __builtins __.any,但它仍然是 returns 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)

returns:

True
False

有趣的是,我还在我的代码的其他地方使用了 any(),并且在那里工作正常:

z=-0.668
z_con = [-2,-1.5,-1,1,1.5,2]
print z < any(z_con)

returns:

True

any 按预期工作,只是不像 期望的那样工作。

any returns True 一旦找到计算结果为 True 的元素。对于数字,这意味着一旦找到非零元素,它就会 return 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)

输出一个"correct"输出纯属巧合。它打印 True 因为:

  1. any(z_con) 的计算结果为 True(因为 z_con 至少有一个非零数)
  2. z < True 的计算结果为 True,因为 True 的基础值为 1,而 -0.668 < 1True.