如果有:
if any(word in sentence for sentence in sentences):
并且sentences
是一长串,例如10,000个句子长度的字符串,any()
将遍历整个列表以确定是否为真,或者一旦找到真值,它将停止寻找找到了,因为any()
的值已经确定为真?
如果无论如何真正遍历整个列表,那么当然,使用一次for循环并一旦发现中断就比使用any()
更快,这就是我要问的原因。
答案 0 :(得分:2)
是的,它确实会发生短路。来自the documentation:
等同于:
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
(即时)