python任何()条件不返回正确的输出



i插座找出为什么任何((在这里不返回。我认为这可能与Numpy有关。但是,我也尝试将任何人称为__ -builtins __。

导入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

有趣的是,我也在代码中其他地方使用的任何((,并且在此工作正常:

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

返回:

True

any可以按预期工作,只是 you 期望它可以正常工作。

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是因为:

  1. any(z_con)True进行评估(因为z_con至少有一个非零数字(
  2. z < True评估True,因为True的基础值为1,而-0.668 < 1True