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 安装setuptools和pip工具操作方法(必看)
May 22 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
Python建立Map写Excel表实例解析
Jan 17 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python实现批量注册网站用户的示例
Feb 22 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
python如何制作缩略图
Apr 30 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
opencv+python实现均值滤波
Feb 19 Python
基于python实现matlab filter函数过程详解
Jun 08 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 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 fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
幼师自荐信
2013/10/26 职场文书
自我推荐书
2013/12/04 职场文书
教师党员承诺书
2014/03/25 职场文书
学党史心得体会
2014/09/05 职场文书
八一建军节慰问信
2015/02/14 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
学习nginx基础知识
2021/09/04 Servers
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript