python中xrange和range的区别


Posted in Python onMay 13, 2014

range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
range示例:

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

xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
xrange示例:

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

由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用:

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]

输出结果:

<type 'list'>
[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]
0 1

而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

a = xrange(0,100)
print type(a)
print a
print a[0], a[1]

输出结果:

<type 'xrange'>
xrange(100)
0 1
Python 相关文章推荐
Python实现将n个点均匀地分布在球面上的方法
Mar 12 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 Python
python实现推箱子游戏
Mar 25 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
Python中如何引入第三方模块
May 27 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
Python中os和shutil模块实用方法集锦
May 13 #Python
Python中的jquery PyQuery库使用小结
May 13 #Python
Python getopt模块处理命令行选项实例
May 13 #Python
Python random模块(获取随机数)常用方法和使用例子
May 13 #Python
Python自动化测试工具Splinter简介和使用实例
May 13 #Python
Python获取远程文件大小的函数代码分享
May 13 #Python
Python FTP操作类代码分享
May 13 #Python
You might like
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
JavaScript 继承详解(二)
2009/07/13 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
vue项目中使用fetch的实现方法
2019/04/25 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
python抓取最新博客内容并生成Rss
2015/05/17 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python pandas用法最全整理
2019/08/04 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
宣传策划类求职信范文
2014/01/31 职场文书
大学军训感言1000字
2014/02/25 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers