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
(即时)谢谢!现在我明白了这叫做“短路”,很容易找到更多关于这个主题的信息。我不知道这个名字。