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