以下代码需要27秒才能在我的机器上执行。
any([i==0 for i in range(100000000)])
原因是因为python在应用any
之前计算整个列表。我想要一个只根据需要计算列表的任何函数。
我知道你可以这样做
value=false
for i in range(100000000):
if i==0:
value=true
break
但我正在寻找一个班轮。
删除[]
使其成为生成器表达式,问题解决了:
any(i == 0 for i in range(100000000))
对于Python 2,请使用生成器版本xrange
而不是range
。