Python3如何使用range函数替代xrange函数


Posted in Python onOctober 05, 2020

在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。这个表现十分像生成器(比如。"惰性求值")。但是这个 xrange-iterable 是无穷的,意味着你可以无限遍历。由于它的惰性求值,如果你不得仅仅不遍历它一次,xrange() 函数 比 range() 更快(比如 for 循环)。尽管如此,对比迭代一次,不建议你重复迭代多次,因为生成器每次都从头开始。

在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中 xrange() 会抛出命名异常)。

解决方法

上面讲的原因比较官方,可能很多人不是理解,通俗点讲就是:

因为 python3 中取消了 range 函数,而把 xrange 函数重命名为 range,所以现在直接用 range 函数即可。

因此,在python3版本中,我们只需要直接用range 函数就可以了!而且从某种意义上来说,xrange() 函数用法与 range() 完全相同。如下:

range

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

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,10)
[2, 3, 4, 5, 6, 7, 8, 9]
>>> range(2,10,2)
[2, 4, 6, 8]
>>> type(_)
<type 'list'>

xrange

函数说明:和range 的用法完全相同,但是返回的是一个生成器。

>>> xrange(10)
xrange(10)
>>> xrange(2,10)
xrange(2, 10)
>>> xrange(2,10,2)
xrange(2, 10, 2)
>>> type(_)
<type 'xrange'>
>>> list(xrange(2, 10, 2))
[2, 4, 6, 8]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
玩转python爬虫之URLError异常处理
Feb 17 Python
python if not in 多条件判断代码
Sep 21 Python
python使用opencv进行人脸识别
Apr 07 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
May 11 Python
浅述python中深浅拷贝原理
Sep 18 Python
Python线程之定位与销毁的实现
Feb 17 Python
对python 调用类属性的方法详解
Jul 02 Python
python绘制玫瑰的实现代码
Mar 02 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
Python threading模块condition原理及运行流程详解
Oct 05 #Python
Python urllib库如何添加headers过程解析
Oct 05 #Python
Python3获取cookie常用三种方案
Oct 05 #Python
Python collections.deque双边队列原理详解
Oct 05 #Python
Python全局变量与global关键字常见错误解决方案
Oct 05 #Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 #Python
Python xmltodict模块安装及代码实例
Oct 05 #Python
You might like
php获得当前的脚本网址
2007/12/10 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
关于event.cancelBubble和event.stopPropagation()的区别介绍
2011/12/11 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Pandas 按索引合并数据集的方法
2018/11/15 Python
django认证系统 Authentication使用详解
2019/07/22 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
python中提高pip install速度
2020/02/14 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
后勤部经理岗位职责
2014/02/23 职场文书
社区义诊活动总结
2014/04/30 职场文书
平安建设工作方案
2014/06/02 职场文书
心理学专业求职信
2014/06/16 职场文书
总经理助理岗位职责
2015/01/31 职场文书
机关工会工作总结2015
2015/05/26 职场文书
军事博物馆观后感
2015/06/05 职场文书
初一数学教学反思
2016/02/17 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
python xlwt模块的使用解析
2021/04/13 Python