python 中range与xrange的区别
先来看看range与xrange的用法介绍
help(range)
Help on built-in function range in module __builtin__:
range(...)
range(stop) -> list of integers
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.
实例说明
eg:
In [4]: range(6)
Out[4]: [0, 1, 2, 3, 4, 5]
In [5]: range(1,6)
Out[5]: [1, 2, 3, 4, 5]
In [6]: range(1,6,1)
Out[6]: [1, 2, 3, 4, 5]
In [7]: range(1,6,2)
Out[7]: [1, 3, 5]
range()返回的是list对象(列表),默认步长为1,一次性输出所有内容
Help on class xrange in module __builtin__:
class xrange(object)
| xrange(stop) -> 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
In [15]: xrange(5)
Out[15]: xrange(5)
In [16]: list(xrange(5))
Out[16]: [0, 1, 2, 3, 4]
In [17]: list(xrange(1,5))
Out[17]: [1, 2, 3, 4]
In [18]: list(xrange(0,6,2))
Out[18]: [0, 2, 4]
range() 与xrange()都用于循环
In [24]: for i in range(10,20):
....: print i
....:
10
11
12
13
14
15
16
17
18
19
In [25]: for i1 in xrange(10,20):
....: print i1
....:
10
11
12
13
14
15
16
17
18
19
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象,xrange直接生成一个生成器:
通过上面的示例知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一开始就开辟一块很大的内存空间
所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。
python 中range与xrange的区别的更多相关文章
- python中range和xrange的区别
1.range生成一个列表:xrange生成一个生成器 2.用法都差不多
- ZH奶酪:Python中range和xrange的区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示例: >>> ...
- python 中range和xrange的区别
range() 相当于直接构造一个列表,而xrange() 是返回一个迭代值. range用法: range( 开始值,结束值,步长) 在需要大量迭代的时候,比较适合使用xrange()
- python中range、xrange和randrange的区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表. xrange 函数说明:和range 的用法完 ...
- python之旅:python中range()和len()函数区别
函数:len() 作用:返回字符串.列表.字典.元组等长度 语法:len(str) 参数: str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度 实例 1.计算字符 ...
- python中range()和len()函数区别
函数:len() 作用:返回字符串.列表.字典.元组等长度 语法:len(str) 参数: str:要计算的字符串.列表.字典.元组等 返回值:字符串.列表.字典.元组等元素的长度 实例 1.计算字符 ...
- python2中range和xrange的区别
range和xrange用法相同,不同的是xrange不是生成一个序列,而是作为一个生成器,即生成一个取出一个 相对来说,xrange比range性能优化很多,因为不需要一下子开辟一块很大的内存,特别 ...
- python基础-range和xrange的区别
range(start,stop,step): 1.用于循环时使用,可以给定开始,结束,和步长 例如: >>> for i in range(2,10,2):... print i, ...
- Python中range和xrange的异同之处
range 函数说明:range([start,] stop[, step]).依据start与stop指定的范围以及step设定的步长,生成一个序列. range演示样例: >> ...
随机推荐
- stm32f107vc在IAR环境下,引用库函数的工程文件的配置方法
stm32做开发很方便的一个原因是大家可以稍稍放松对于硬件寄存器等的设置,因为stm32有了非常丰富和实用的库函数,外设文件等等,所以我们在使用的时候可以更加关注程序开发的过程和逻辑关系.但是,在开发 ...
- 利用yum工具安装应用程序
在安装gtk+编译环境的过程中,你会发现,RPM软件包之间的依赖关系非常复杂.在实际管理过程中,这种依赖关系可能会更加复杂.因此非常有必要寻找一种自动化安装工具,让安装工具自己处理这些关系复杂的依赖关 ...
- Apache的编译安装error: APR not found. Please read the documentation
提示configure: error: APR not found. Please read the documentation. 经网上查阅资料才知道这是Apache的关联软件 在apr.apach ...
- 1.5.7 CharFilterFactories
CharFilterFactories 字符过滤器是一个预处理输入字符的组件,字符过滤器可以链接如token过滤器,并放置在Tokenizer(分词器)的前面,字符过滤器可以添加,更改或删除字符,同时 ...
- Unity3D 使用脚本来控制 UI 的 Image 显示的图片。
记录一下这个问题. 原文地址:http://tieba.baidu.com/p/3561719701 object obj = Resources.Load(资源名, typeof(Sprite)); ...
- Java中Integer的最大值和最小值
从JDK1.0开始,Integer中就定义了MIN_VALUE和MAX-VALUE两个常量: /** * A constant holding the minimum value an {@code ...
- Umbraco列表分页
展示型文章经常会遇到分页的问题,以下是我的解决方法: ; ; int.TryParse(Request.QueryString["page"], out page); var to ...
- Freebsd 编译内核
# cd /usr/src/sys/i386/conf # cp GENERIC GENERIC.20060812# ee GENERIC 如果要加入ipf防火墙的话则加入options ...
- POJ 2516 Minimum Cost 最小费用流
题目: 给出n*kk的矩阵,格子a[i][k]表示第i个客户需要第k种货物a[i][k]单位. 给出m*kk的矩阵,格子b[j][k]表示第j个供应商可以提供第k种货物b[j][k]单位. 再给出k个 ...
- Android achartengine统计图
最近在安卓2.2上写个实时的监控程序,要用到统计图.从网上搜了下 Java4Less (http://java4less.com/charts/chart.php?info=android) ...