【发布时间】:2017-12-21 23:36:55
【问题描述】:
我担心的是:
for i in range(1000000000):
...
从幼稚的角度来看,我假设一个 1000000000 个整数的数组在循环开始之前被分配和初始化,只有在循环结束后才被释放。
所以我想知道是否应该将其替换为:
i = 0
while i < 1000000000:
...
i += 1
但根据this answer,for 循环的执行速度比等效的while 循环快。
那么我是否必须接受这种权衡,或者我上面的假设是错误的,并且在迭代大型 range 时没有显着的内存影响?
【问题讨论】:
-
@mkrieger1:我的问题是“范围是否消耗内存”,而不是“范围和 xrange 之间有什么区别”。所以根据定义,这两个问题不能重复。这两个答案可能是,因此您可以将它们标记为重复。
-
@khelwood:我的问题是“范围是否消耗内存”,而不是“范围和 xrange 之间有什么区别”。所以根据定义,这两个问题不能重复。这两个答案可能是,因此您可以将它们标记为重复。
-
@Jean-François Fabre:我的问题是“范围是否消耗内存”,而不是“范围和 xrange 之间有什么区别”。所以根据定义,这两个问题不能重复。这两个答案可能是,因此您可以将它们标记为重复。
-
三遍完全相同的评论具有讽刺意味。 :D
标签: python python-2.7 for-loop memory