如何将Python中的if语句与数组一起使用?

如何将Python中的if语句与数组一起使用?,python,Python,我试图使用以下语句: if any(dy) < 0: print 'do something' 我可以在数组中看到很多元素

我试图使用以下语句:

if any(dy) < 0:

     print 'do something'
我可以在数组中看到很多元素<然后为0,但程序似乎仍然无法读取它们并执行print命令。我想这是因为dy是一个数组。 我怎样才能解决这个问题

使用:

if any(i < 0 for i in dy):
    print 'do something'
dy中的i部分的i<0是一个生成器,如果dy中的值小于0,则迭代时将生成一些真值。any函数然后迭代生成器,如果在生成器输出中遇到任何真值,则返回真值,这意味着dy中的值小于0。以您当前的方式,any将返回True(相当于1)或False(相当于0),两者都不小于0,因此永远不会执行打印。

any函数只测试传递的表达式中是否有单个True值:

any(i < 0 for i in dy) # need to use a generator or list comprehension

在普通Python中,any是一个内置函数,它返回一个True或False布尔值,并且该值永远不小于0。但是考虑到您在这里使用术语数组,我想知道您是否在使用numpy,它还附带了一个。您使用的是哪一个?这是python数组还是numpy数组?如果您解释一下为什么应该这样使用它,那会很有帮助。@MartijnPieters我在下面尝试过这样做。否则我就不会发帖了。谢谢,是的。它对OP不起作用的原因是因为anydy返回True==1或False==0。这永远不会小于0。即使dy都是零,并且任何返回的值都是False,它也会等于零,而不是更小。我如何使用该数组中的负元素进行后续计算?我只想要负值!