python之range和xrange
range 前面小节已经说明了,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
比如:
1 |
>>> range ( 5 ) |
2 |
[ 0 , 1 , 2 , 3 , 4 ] |
3 |
>>> range ( 1 , 5 ) |
4 |
[ 1 , 2 , 3 , 4 ] |
5 |
>>> range ( 0 , 6 , 2 ) |
6 |
[ 0 , 2 , 4 ] |
xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
01 |
>>> xrange ( 5 ) |
02 |
xrange ( 5 ) |
03 |
>>> list ( xrange ( 5 )) |
04 |
[ 0 , 1 , 2 , 3 , 4 ] |
05 |
>>> xrange ( 1 , 5 ) |
06 |
xrange ( 1 , 5 ) |
07 |
>>> list ( xrange ( 1 , 5 )) |
08 |
[ 1 , 2 , 3 , 4 ] |
09 |
>>> xrange ( 0 , 6 , 2 ) |
10 |
xrange ( 0 , 6 , 2 ) |
11 |
>>> list ( xrange ( 0 , 6 , 2 )) |
12 |
[ 0 , 2 , 4 ] |
由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
xrange 和 range 这两个基本上都是在循环的时候用。
1 |
for i in range ( 0 , 100 ): |
2 |
print i |
3 |
4 |
for i in xrange ( 0 , 100 ): |
5 |
print i |
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
1 |
a = range ( 0 , 100 ) |
2 |
print type (a) |
3 |
print a |
4 |
print a[ 0 ], a[ 1 ] |
输出结果:
1 |
< type 'list' > |
2 |
[ 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 ] |
3 |
0 1 |
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:
1 |
a = xrange ( 0 , 100 ) |
2 |
print type (a) |
3 |
print a |
4 |
print a[ 0 ], a[ 1 ] |
输出结果:
1 |
< type 'xrange' > |
2 |
xrange ( 100 ) |
3 |
0 1 |
python之range和xrange的更多相关文章
- python 中range与xrange的区别
先来看看range与xrange的用法介绍 help(range)Help on built-in function range in module __builtin__: range(...) r ...
- python中range、xrange和randrange的区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表. xrange 函数说明:和range 的用法完 ...
- Python的range和xrange
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. range示例: >>> r ...
- 【Python】range和xrange区别
转自:http://www.cnblogs.com/zhangjing0502/archive/2012/05/16/2503880.html range 函数说明:range([start,] ...
- Python 之range 和 xrange
我目前使用的版本是2.7.6 >>> help (range)Help on built-in function range in module __builtin__: range ...
- python中range和xrange的区别
1.range生成一个列表:xrange生成一个生成器 2.用法都差不多
- ZH奶酪:Python中range和xrange的区别
range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列.range示例: >>> ...
- python基础-range和xrange的区别
range(start,stop,step): 1.用于循环时使用,可以给定开始,结束,和步长 例如: >>> for i in range(2,10,2):... print i, ...
- python 中range和xrange的区别
range() 相当于直接构造一个列表,而xrange() 是返回一个迭代值. range用法: range( 开始值,结束值,步长) 在需要大量迭代的时候,比较适合使用xrange()
随机推荐
- 06-hibernate注解-一对多单向外键关联
一对多单向外键 1,一方持有多方的集合,一个班级有多个学生(一对多). 2,@OneToMany(cascade={CascadeType.ALL}, fetch=FetchType.LAZY ) / ...
- 【微信小程序】退款功能教程(含申请退款和退款回调)
1.一定要区分小程序和公众号的退款,唯一的区别就是 appid不一样,其他的都是一样的. 不废话,直接写代码了啊. 放大招!!! 然后,需要注意的:最好是把证书放在下面的php的同级或者下级. 证书的 ...
- 企业信息系统集成框架(设计思路)C++模式
设计要求: 1.企业信息系统框架.第三方产品通过接口层进行分层. 2.企业信息系统框架如何自由的继承第三方产品:通过一个抽象类.(软件设计要求:模块要求松,接口要求紧). 设计步骤: 1.报文的接受与 ...
- mac ssh 命令
https://www.cnblogs.com/littleBit/p/5362806.html 1.终端命令 1.打开Mac的命令终端,检查是不是用root登陆,如果不是的话,就输入命令:sudo ...
- 从12306网站新验证码看Web验证码设计与破解
2015年3月16日,铁路官方购票网站12306又出新招,在登录界面推出了全新的验证方式,用户在填写好登录名和密码之后,还要准确的选取图片验证码才能登陆成功.据悉,12306验证码改版后,目前所有抢票 ...
- 使用 ConfigurationSection 创建自定义配置节
我们可以通过用自己的 XML 配置元素来扩展标准的 ASP.NET 配置设置集,要完成这一功能,我们必须实现继承System.Configuration.ConfigurationSection 类来 ...
- size_t详细解释
在学习sizeof运算符的时候,它的值类型为size_t,结果在使用printf函数显示的时候,凭空多了很多警告,有点不不理解,为啥搞这么复杂?直接用个int类型多省事? 经过一番搜索和阅读文档,找到 ...
- [svc]salt-webui
CherryPy https://pypi.python.org/packages/source/C/CherryPy/CherryPy-3.2.4.tar.gz#md5=e2c8455e15c39c ...
- bootstrip可视化布局
http://www.w3cschool.cc/try/bootstrap/layoutit/
- zepto,kissy前端框架实现跨域
三.jsonp的原理:带有src属性标签的跨域资源获取能力,在jsonp中通常使用<script>标签,因为<script>标签获取的跨域资源可以使用回调函数直接处理 json ...