如果值得缓存Python的范围(开始,停止,步进)

问题描述 投票:1回答:2

在运行for多次fixed range的python程序中,例如。>

while some_clause:
    for i in range(0, 1000)
        pass
    ...

缓存range是否有意义:

r = range(0, 1000)
while some_clause:
    for i in r
        pass
    ...

否则不会带来太多好处?

在python程序中,该程序多次在固定范围内循环运行,例如。some_clause:对于range(0,1000)中的i传递...缓存范围是否有意义:r = range(0,1000)。 ..

python
2个回答
5
投票

[不会,range调用几乎不执行任何操作,只有iter调用很昂贵,但是您无法解决这个问题。(奇怪的是,由于某种原因,缓存使它变慢了)我的基准:


1
投票

[如果使用的是Python 2.*,则range将返回list,而您应为xragnexrange(2。)或range(3。

© www.soinside.com 2019 - 2024. All rights reserved.