检查列表中任何元素的条件是否成立的 Python 方法

我有一个 Python 中的列表,我想检查是否有任何元素是负的。是否有一个简单的函数或语法,我可以使用“是否”检查所有的元素,并看看他们中的任何是否为负?我检查了 文件系统,没有发现任何类似的东西。我能想到的最好的办法就是:

if (True in [t < 0 for t in x]):
# do something

我觉得这有点不雅观。在 Python 中有更好的方法吗?


这里的现有答案使用内置函数 any进行迭代。有关 any及其对应物 all的解释,请参阅 Python 的所有函数是如何工作的?

如果要检查的条件是“在另一个容器中找到”,请参阅 如何检查列表中是否有下列项目之一?及其对应的 如何检查列表中是否包含以下所有项目?。使用 anyall是可行的,但是更有效的解决方案是可能的。

145163 次浏览

任何() :

if any(t < 0 for t in x):
# do something

另外,如果你打算使用“ True in...”,使用一个生成器表达式,这样就不会占用 O (n)内存:

if True in (t < 0 for t in x):

使用 any()

if any(t < 0 for t in x):
# do something

Python 有一个内置的 任何()函数,正是为了这个目的。

a=x.copy()
a.sort()
if a[0]<0:
# do something