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去掉字符串中空格的方法
Mar 11 Python
Python RuntimeError: thread.__init__() not called解决方法
Apr 28 Python
python实现马耳可夫链算法实例分析
May 20 Python
Python中字典的基本知识初步介绍
May 21 Python
Python对象转JSON字符串的方法
Apr 27 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
python一些性能分析的技巧
Aug 30 Python
Python调用JavaScript代码的方法
Oct 27 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 serialize()与unserialize()的用法
2013/06/05 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
json 定义
2008/06/10 Javascript
FileUpload 控件 禁止手动输入或粘贴的实现代码
2010/04/07 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
Javascript如何判断数据类型和数组类型
2016/06/22 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
使用python实现BLAST
2018/02/12 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
使用python模拟命令行终端的示例
2019/08/13 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
详解python itertools功能
2020/02/07 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
通信工程毕业生求职信
2013/11/16 职场文书
2015年外联部工作总结
2015/04/03 职场文书
考研英语辞职信
2015/05/13 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技