`

python range xrange

阅读更多
引用
Help on built-in function range in module __builtin__:

range(...)
    range([start,] stop[, step]) -> list of integers
  
    Return a list containing an arithmetic progression of integers.
    range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
    When step is given, it specifies the increment (or decrement).
    For example, range(4) returns [0, 1, 2, 3].  The end point is omitted!
    These are exactly the valid indices for a list of 4 elements.


根据start与stop指定的范围以及step设定的步长,生成一个list。

>>> range(0,6)
[0, 1, 2, 3, 4, 5]


step为2的时候
>>> range(0,6,2)
[0, 2, 4]

>>> l=range(0,6)
>>> l
[0, 1, 2, 3, 4, 5]



引用
Help on class xrange in module __builtin__:

class xrange(object)
|  xrange([start,] stop[, step]) -> xrange object
|
|  Like range(), but instead of returning a list, returns an object that
|  generates the numbers in the range on demand.  For looping, this is
|  slightly faster than range() and more memory efficient.
|
|  Methods defined here:
|
|  __getattribute__(...)
|      x.__getattribute__('name') <==> x.name
|
|  __getitem__(...)
|      x.__getitem__(y) <==> x[y]
|
|  __iter__(...)
|      x.__iter__() <==> iter(x)
|
|  __len__(...)
|      x.__len__() <==> len(x)
|
|  __reduce__(...)
|
|  __repr__(...)
|      x.__repr__() <==> repr(x)
|
|  __reversed__(...)
|      Returns a reverse iterator.
|
|  ----------------------------------------------------------------------
|  Data and other attributes defined here:
|
|  __new__ = <built-in method __new__ of type object>
|      T.__new__(S, ...) -> a new object with type S, a subtype of T


xrange用法与range完全相同,所不同的是xrange生成的不是一个数组,而是一个generators
>>> list(xrange(0,6))
[0, 1, 2, 3, 4, 5]
>>> list(xrange(0,6,2))
[0, 2, 4]

因为xrange生成的是一个generators而不是数组,所以当数据很大的时候,使用xrange是有很大优势的。
>>> lst = range(0,7)
>>> lst
[0, 1, 2, 3, 4, 5, 6]
>>> for i in range((len(lst)-2)/2,-1,-1):
...     print i
...
2
1
0

>>> for i in range(len(lst)-1,-1,-1):
...     print i
...
6
5
4
3
2
1
0

参考资料:
http://docs.python.org/2/library/functions.html
http://stackoverflow.com/questions/94935/what-is-the-difference-between-range-and-xrange
分享到:
评论

相关推荐

    python中xrange和range的区别

    range 函数说明:range([start...xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。xrange示例:复制代码 代码如下:&gt;&gt;&gt; xrange(5)xrange(5)&gt;&gt;&gt; list(xrange(5))[0, 1, 2, 3, 4]&gt;&gt;&gt;

    浅谈Python中range和xrange的区别

    在Python编程语言中,`range()`和`xrange()`(在Python 3中已被移除)是两个用于生成整数序列的函数,但它们在内存管理和性能方面存在显著差异。理解这些差异对于编写高效和内存友好的代码至关重要。 首先,`range...

    python中xrange用法分析

    本文实例讲述了python中xrange用法。分享给大家供大家参考。具体如下: 先来看如下示例: &gt;&gt;&gt; x=xrange(0,8) &gt;&gt;&gt; print x xrange(8) &gt;&gt;&gt; print x[0] 0 &gt;&gt;&gt; print x[7] 7 &gt;&gt;&gt; print x[8] Traceback (most recent ...

    python中range()与xrange()用法分析

    在Python编程语言中,`range()` 和 `xrange()` 都是用于生成整数序列的函数,但在Python 2.x版本中,它们有着明显的不同,而在Python 3.x版本中,`xrange()` 已被弃用,其功能被集成到 `range()` 中。下面是关于这两...

    Python中xrange与yield的用法实例分析

    - **注意**:在Python 3.x版本中,`xrange` 已被移除,取而代之的是 `range`,其行为类似于Python 2.x中的 `xrange`。 #### 二、如何使用xrange 在Python 2.x中使用 `xrange` 可以提高内存效率。下面是一些使用...

    Python3如何使用range函数替代xrange函数

    在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典...在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange

    深入理解Python中range和xrange的区别

     python中xrange和range的区别 python中range()与xrange()用法分析 本次小编给大家带来的是深入理解range和xrange之间的区别。 两种用法介绍如下: 1.range([start], stop[, step]) 返回等差数列。构建等差数列,...

    python2.x和python3.x的区别

    在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...

    python开发中range()函数用法实例分析

    由于`range()`在Python 3.x版本中进行了优化,对于需要兼容Python 2.x的代码,可以使用`xrange()`函数,它在Python 2.x中与`range()`类似,但在Python 3.x中已不再可用。 总之,`range()`函数是Python中进行数值...

    xrange:xrange内置的纯Python实现

    Python 2.7内置xrange的纯Python实现,并且从该版本的Python 3.x range内置(代替xrange )向后移植了一些功能。 没有充分的理由在代码中使用它,它的目的是记录和描述xrange或range内建xrange的行为,以及通常...

    Python程序设计PPT

    在Python 2.x中xrange()创建迭代对象的用法是非常流行的,比如:for循环或者是...在Python 3.x中,range()的实现方式与xrange()函数相同,所以就不存在专用的xrange()(在Python 3.x中使用xrange()会触发NameError)。

    python SIX包

    5. **迭代器兼容**:Python 2中的`xrange()`在Python 3中被`range()`替代,且行为有所不同。`six`提供了`six.moves.range()`来兼容这两个函数。 6. **元类兼容**:Python 2和Python 3对元类的处理方式不同,`six`...

    在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南

    4. range/xrange的使用:由于Python 3的range已经相当于Python 2的xrange,在迁移时应避免使用xrange,并将原有的range替换为Python 3的range。 5. 其他兼容性问题:由于两个版本间存在语法和功能上的差异,一些...

    Python six包

    3. **迭代器和生成器**:Python 2的`xrange`在Python 3中被`range`取代,`six`提供了`six.moves.xrange`来确保跨版本兼容性。 4. **函数和方法**:Python 2的`apply()`, `execfile()`, 和`reduce()`在Python 3中已...

    Python 八股文.pdf

    Python 3的`range()`返回可迭代对象,而Python 2的`range()`返回列表,`xrange()`返回可迭代对象;Python 3的除法返回浮点数,Python 2则根据除数和被除数类型返回整数或浮点数。 8. **可变对象与不可变对象**:可...

Global site tag (gtag.js) - Google Analytics