这两个基本上都是在循环的时候用。
for i in range(0, 100):
print i
for i in xrange(0, 100):
print i
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
a = range(0,100)
print type(a)
print a
print a[0], a[1]
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值
a = xrange(0,100)
print type(a)
print a
print a[0], a[1]
所以xrange做循环的性能比range好,尤其是返回很大的时候!
尽量用xrange吧,除非你是要返回一个列表。
>>> a = range(0, 100)
>>> print type(a)
<type 'list'>
>>> print a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> print a[0]
0
>>> a = xrange(0, 100)
>>> print type(a)
<type 'xrange'>
>>> print a
xrange(100)
>>> print a[0]
0
分享到:
相关推荐
在Python编程语言中,`range()`和`xrange()`(在Python 3中已被移除)是两个用于生成整数序列的函数,但它们在内存管理和性能方面存在显著差异。理解这些差异对于编写高效和内存友好的代码至关重要。 首先,`range...
python中xrange和range的区别 python中range()与xrange()用法分析 本次小编给大家带来的是深入理解range和xrange之间的区别。 两种用法介绍如下: 1.range([start], stop[, step]) 返回等差数列。构建等差数列,...
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(n, m)返回的是一个从n到(m-1)的连续的整数列表,而xrange(n, m)返回的却是一个特殊的...
5. range和xrange的区分取消:Python 3中,range函数的行为与Python 2中的xrange类似,可以生成一个可迭代的range对象,从而提高了内存效率。 6. 迭代器的改进:Python 3通过引入新的内置类型来改善迭代器的行为,...
本文实例讲述了python中range()与xrange()用法。分享给大家供大家参考,具体如下: 据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值(参考://...
在 Python 中,Range 和 xrange 的区别是 Range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以当列表很长时...
5. **range和xrange**:在Python 2中,`xrange`是一个生成器对象,用于高效地生成整数序列,而在Python 3中,`range`函数已经取代了`xrange`,并且行为类似生成器。 6. **import语句**:Python 3中,导入模块的语法...
8. **range和xrange的区别?** 在Python 2.x中,`range`返回一个列表,而`xrange`返回一个生成器对象,后者在内存效率上更高,因为它按需生成数值。但在Python 3.x中,`range`已经采用了生成器的实现,所以不再有`...
3. **Python 中 range 和 xrange 的区别** 在Python 2中,`range()`生成一个列表,而`xrange()`生成一个迭代器。`xrange()`在内存使用和性能上更优,因为它只在需要时生成下一个数字,而不是一次性生成所有数字。...
**问题描述**:关于Python中的`range`和`xrange`函数,下面哪些说法是错误的? **选项**: A. `range`返回的是list B. `xrange`返回的是list C. 生成大的数字序列时,适宜用`range` D. 生成大的数字序列时,适宜用`...
squares = {x: x*x for x in range(1, 6)} print(squares) # 输出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25} ``` #### 7. Python中的单下划线和双下划线 - **单下划线 `_`** 通常表示私有属性或方法,但实际上并没有强制...
首先,来看看PHP中的range和xrange函数。在PHP 5.5之前的版本中,如果使用range函数生成一个非常大的数组,如range(1,***),将会消耗巨大的内存,并且可能引发致命错误。这是因为range函数会创建一个包含所有元素的...
5. range/xrange:在Python2中有range和xrange两个函数,xrange在处理大范围数据时更加内存高效,因为它不会立即生成所有值,而是边循环边生成。而Python3中只有range函数,它的行为类似于Python2中的xrange。 6. ...
总结来说,xrange和range都用于生成整数序列,但是在Python 2中xrange在处理大数据时更为高效。Python 3中的range已经整合了xrange的特性,使得在所有情况下都可以高效地使用range来生成序列。无论是在Python 2还是...
xrange.py Python 2.7内置xrange的纯Python实现,并且从该版本的Python ... 没有充分的理由在代码中使用它,它的目的是记录和描述xrange或range内建xrange的行为,以及通常实现Sequence协议的对象的行为。 在了解更多