Python 任何只计算列表直到所需值的函数
以下代码需要27秒才能在我的机器上执行Python 任何只计算列表直到所需值的函数,python,lambda,Python,Lambda,以下代码需要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
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
any(对于范围(100000000)内的i,i==0)
仍然需要一秒钟以上的时间。而any(i==0表示i在(1000000000)范围内)将永远持续。
您使用的是什么版本的Python?我使用的是SageMath 8.6我不确定那是什么版本的Python。如果是2.x,请使用xrange
而不是range
。是的,它使用的是Python2.x,请参阅