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
因为:
any(z_con)
的计算结果为 True
(因为 z_con
至少有一个非零数)
z < True
的计算结果为 True
,因为 True
的基础值为 1,而 -0.668 < 1
为 True
.
我不知道为什么 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
因为:
any(z_con)
的计算结果为True
(因为z_con
至少有一个非零数)z < True
的计算结果为True
,因为True
的基础值为 1,而-0.668 < 1
为True
.