goo*_*ion 1 python memory for-loop python-2.7
我担心的是:
for i in range(1000000000):
...
Run Code Online (Sandbox Code Playgroud)
从一个幼稚的角度来看,我假设在循环开始之前分配并初始化了一个包含1000000000个整数的数组,并且仅在循环结束后才释放.
所以我想知道我是否应该用以下代替:
i = 0
while i < 1000000000:
...
i += 1
Run Code Online (Sandbox Code Playgroud)
但根据这个答案,for循环的执行速度比等效while循环快.
那么我是否必须接受这种权衡,或者我的假设是错误的,并且在迭代大量时没有显着的内存影响range?
是的,在python-2.x range中将创建整个列表.
但你不一定需要一个while循环,你也可以使用懒惰 - 替代range:xrange.
for i in xrange(1000000000):
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |