Python.Python.Any()是否在找到truthhy值后就停止对listgenerator的迭代?一旦找到truthhy值,any()是否会停止对listgenerator的迭代?[重复]

问题描述 投票:0回答:1

如果你有。

if any(word in sentence for sentence in sentences):

和... sentences 是一个长长的列表,比如说,10000个句子长度的字符串,将 any() 遍历整个列表以确定是否有真值,还是一旦找到真值就会停止查找,因为 any() 值已经被确定为真?

如果真的是不顾一切地遍历整个列表,那么当然如果使用for循环并在找到后中断会比使用 any()这就是我问的原因。

python performance any
1个回答
2
投票

是的,它确实是这样短路的。从 文件:

相当于。

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

一个简单的方法是用一个大的或无限的迭代法来确认。

>>> any(True for i in range(1_000_000_000_000))
True

(瞬间)

© www.soinside.com 2019 - 2024. All rights reserved.