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 实现插入排序算法
Jun 05 Python
Python3访问并下载网页内容的方法
Jul 28 Python
使用C++扩展Python的功能详解
Jan 12 Python
wxPython之解决闪烁的问题
Jan 15 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
浅谈python出错时traceback的解读
Jul 15 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
利用Python多线程实现图片下载器
Mar 25 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桌面中心(四) 数据显示
2007/03/11 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
JavaScript 数组详解
2013/10/10 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
编程语言Python的发展史
2014/09/26 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
Python复制文件操作实例详解
2015/11/10 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
详解python和matlab的优势与区别
2019/06/28 Python
在python中画正态分布图像的实例
2019/07/08 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
暑假实习求职信范文
2013/09/22 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
高中运动会广播稿
2014/01/21 职场文书
上班打牌检讨书
2014/02/07 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
导游词之西安骊山
2019/12/03 职场文书
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers