range示例:
for i in range(100): ...
xrange示例:
for i in xrange(100): ...
python中,range和xrange的区别是什么呢?
东方不败
在python2中,range返回的是一个列表(list),而xrange返回的是一个生成器。这是本质的区别。
>>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> xrange(10) xrange(10)
如若面对一个很大的取值,比如666666这个数字,range(666666)肯定会比xrange(666666)占用更多的内存,因为前者返回的是一个很长的列表(list),会占很大内存;而后者返回的是一个生成器。
因此,在for循环中,请习惯性地使用xrange来代替range,这是一个好习惯;会让代码变得更加高效。