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中的正则表达式的用法
Apr 09 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
Python算法应用实战之栈详解
Feb 04 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
python logging日志模块的详解
Oct 29 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
python 检查是否为中文字符串的方法
Dec 28 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
python中tkinter复选框使用操作
Nov 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
python缩进区别分析
2014/02/15 Python
Python Trie树实现字典排序
2014/03/28 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
django 外键创建注意事项说明
2020/05/20 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
木工主管岗位职责
2013/12/08 职场文书
运动会入场式解说词
2014/02/18 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
教师节座谈会主持词
2015/07/03 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL