1. range()返回一个list,xrange()返回一个迭代对象
print range(10) print xrange(10) print type(range(10)) print type(xrange(10)) 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] xrange(10) <type 'list'> <type 'xrange'>
2. 通过sys.getsizeof(()方法可以看到range返回list,它所占内存为所有元素累加;xrange则只返回一个32byte的对象,无论它要返回多少数值。
import sys print sys.getsizeof(range(10000)) print sys.getsizeof(xrange(10000)) print sys.getsizeof(xrange(100)) 输出: 80064 32 32
3. 性能比较
import time start = time.time() for i in range(100000000): pass print "range use %ss" % (int(time.time() - start)) start = time.time() for i in xrange(100000000): pass print "xrange use %ss" % (int(time.time() - start)) 输出: range use 6s xrange use 4s
4. 总结
正常情况下,使用range和xrange都行,如果你range值很大,则无论存储空间还是迭代性能xrange都优于range。
相关推荐
而`xrange()`(在Python 3中被`range()`替代)在Python 2中是另一个生成器函数,它的行为与`range()`类似,但不直接返回一个完整的列表。相反,它返回一个生成器对象,可以在迭代时按需生成每个数值。这意味着它不...
python中range()与xrange()用法分析 本次小编给大家带来的是深入理解range和xrange之间的区别。 两种用法介绍如下: 1.range([start], stop[, step]) 返回等差数列。构建等差数列,起点是start,终点是stop,但不...
本文实例讲述了python中range()与xrange()用法。分享给大家供大家参考,具体如下: 据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值(参考://...
range 函数说明:range([start...xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。xrange示例:复制代码 代码如下:>>> xrange(5)xrange(5)>>> list(xrange(5))[0, 1, 2, 3, 4]>>>
在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典...在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange
在Python中,`range` 和 `xrange` 都是用来生成整数序列的内置函数,但它们之间存在一些重要的区别。 ##### range - **功能**:`range()` 函数返回一个包含指定范围内的整数的列表。它接受三个参数:起始值、终止值...
在Python中,xrange是一个内建函数,用于生成一个整数序列,类似于range函数。不过,xrange函数在处理大数据集时更加内存高效,因为它不会立即生成整个序列,而是在每次迭代中生成序列中的下一个值。在Python 3中,...
在Python 3.x中,`range`的行为类似于Python 2.x中的`xrange`,返回的是一个迭代器。 - **示例**: - Python 2.x: ```python for i in xrange(10): print(i) ``` - Python 3.x: ```python for i in range(10...
由于`range()`在Python 3.x版本中进行了优化,对于需要兼容Python 2.x的代码,可以使用`xrange()`函数,它在Python 2.x中与`range()`类似,但在Python 3.x中已不再可用。 总之,`range()`函数是Python中进行数值...
然而,在Python 3.x中,`xrange`已被`range`函数替代,后者的行为与Python 2.x中的`xrange`类似,即生成一个迭代器而非完整的列表。 总结来说,`range`更适合简单的整数序列和内存有限的情况,而`arange`则适用于...
在Python 2.x中xrange()创建迭代对象的用法是非常流行的,比如:for循环或者是...在Python 3.x中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python 3.x中使用xrange()会触发NameError)。
Python 2 中的 `xrange` 生成器函数在 Python 3 中被 `range` 函数替代,但 `range` 在 Python 3 中表现得像 `xrange` 一样,即它不会立即创建一个列表,而是返回一个可迭代对象。 6. **异常处理**: Python 2 ...
而在Python3中,xrange被range函数替代,range函数的行为类似于Python2的xrange,它同样采用生成器机制,能处理大数据集,并提高了效率。 在文件操作中,xreadlines和readlines都用于读取文件的行,但它们返回的...