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实现异步回调机制代码分享
Jan 10 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
python中的&amp;&amp;及||的实现示例
Aug 07 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
python中property和setter装饰器用法
Dec 19 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
django rest framework serializers序列化实例
May 13 Python
Python库安装速度过慢解决方案
Jul 14 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
教你使用TensorFlow2识别验证码
Jun 11 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 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php解析url的三个示例
2014/01/20 PHP
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
学习python处理python编码问题
2011/03/13 Python
python中的sort方法使用详解
2014/07/25 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
python实现数据分析与建模
2019/07/11 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
python 一维二维插值实例
2020/04/22 Python
python 线程的五个状态
2020/09/22 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
HTML5 与 XHTML2
2008/10/17 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
幼儿园家长寄语
2014/04/02 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
财务会计求职信范文
2015/03/20 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
mysql数据库如何转移到oracle
2022/12/24 MySQL