我正在编写一个脚本,其中我必须根据多种条件测试数字。如果any满足我想要返回的条件True
我想以最快的方式做到这一点。
我的第一个想法是使用any()
而不是嵌套if
语句或多个or
链接我的条件。因为如果有任何一个条件满足的话我会很满意True
我真的可以从中受益any()
懒惰并尽快返回 True。
基于以下事实,我认为以下打印是立即发生的,而不是在 10 (= 0 + 1 + 2 + 3 + 4) 秒后发生。是这样还是我弄错了?
import time
def some(sec):
time.sleep(sec)
return True
print(any(some(x) for x in range(5)))
Yes, any()
and all()
短路,一旦结果明确就中止:参见docs:
全部(可迭代)
如果可迭代的所有元素都为 true(或者如果
可迭代为空)。相当于:
def all(iterable):
for element in iterable:
if not element:
return False
return True
任意(可迭代)
如果可迭代的任何元素为 true,则返回 True。如果可迭代的是
空,返回False。相当于:
def any(iterable):
for element in iterable:
if element:
return True
return False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)