我正在尝试使用以下语句:
if any(dy) < 0:
print 'do something'
我可以在数组中看到有很多元素&lt;那么0但似乎程序确实无法读取它们并执行打印命令。我想这是因为dy是一个数组。 我该如何解决这个问题?
答案 0 :(得分:4)
使用:
if any(i < 0 for i in dy):
print 'do something'
i < 0 for i in dy
部分是一个生成器,如果True
中的值小于0,则迭代时将生成一些dy
值。然后any
函数遍历生成器,如果它遇到生成器输出中的任何True
,则返回True
,这意味着dy
中的值小于any
1}}。以您目前的方式,True
将返回False
,相当于1,或print
,相当于0,两者都不小于0,因此您{{1}} 1}}永远不会被执行。
答案 1 :(得分:0)
any
函数只测试传递的表达式中是否存在单个true值:
any(i < 0 for i in dy) # need to use a generator or list comprehension