在 Python 中使用 range() 和 xrange() 之间的区别 [重复]

Posted

技术标签:

【中文标题】在 Python 中使用 range() 和 xrange() 之间的区别 [重复]【英文标题】:Differences between using range() and xrange() in Python [duplicate] 【发布时间】:2012-02-20 06:30:33 【问题描述】:

可能重复:What is the difference between range and xrange?

目前我正在学习 Python。我发现使用 for 循环时有两种方法表示范围,即 range() 和 xrange()。谁能给我一些关于这两种方式之间的区别的想法,以及它们各自的合适场景是什么?谢谢!

【问题讨论】:

【参考方案1】:

pydoc 在这些情况下是你的朋友!

% pydoc range

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.

还有online here。

对比:

% pydoc xrange

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.

还有online there!

【讨论】:

以上是关于在 Python 中使用 range() 和 xrange() 之间的区别 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

range方法在Python2和Python3中的不同

在 Python 中使用 range() 和 xrange() 之间的区别 [重复]

python2中range和xrange的区别

第五节课:Python列表的应用

如何利用python语言中list和range结合起来使用

Python2 中 range 和 xrange 的区别?