Python:一旦找到truthy值,any()是否会停止遍历列表/生成器?

Python:一旦找到truthy值,any()是否会停止遍历列表/生成器?,python,performance,any,Python,Performance,Any,如果您有: if any(word in sentence for sentence in sentences): 而句子是一个很长的列表,比如10000个句子长度的字符串,将any()遍历整个列表以确定是否有任何字符串为真,或者一旦找到真值,它将停止查找,因为any()值已经确定为真 如果它确实在整个列表中进行迭代,那么在找到后使用for循环和break当然会比使用any()更快,这就是为什么我要问的原因。是的,它会像那样短路。发件人: 相当于: def any(iterable):

如果您有:

if any(word in sentence for sentence in sentences):
句子
是一个很长的列表,比如10000个句子长度的字符串,将
any()
遍历整个列表以确定是否有任何字符串为真,或者一旦找到真值,它将停止查找,因为
any()
值已经确定为真


如果它确实在整个列表中进行迭代,那么在找到后使用for循环和break当然会比使用
any()
更快,这就是为什么我要问的原因。

是的,它会像那样短路。发件人:

相当于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
一种简单的确认方法是使用大的或无限的iterable:

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

(即时)

谢谢!现在我明白了这叫做“短路”,很容易找到更多关于这个主题的信息。我不知道这个名字。