Python内置函数reversed()用法分析


Posted in Python onMarch 20, 2018

本文实例讲述了Python内置函数reversed()用法。分享给大家供大家参考,具体如下:

reversed()函数是返回序列seq的反向访问的迭代器。参数可以是列表,元组,字符串,不改变原对象。

1》参数是列表

>>> l=[1,2,3,4,5]
>>> ll=reversed(l)
>>> l
[1, 2, 3, 4, 5]
>>> ll
<listreverseiterator object at 0x06A9E930>
>>> for i in ll:#第一次遍历
...  print i,
... 
5 4 3 2 1
>>> for i in ll:第二次遍历为空,原因见本文最后
...  print i
...

2》参数是列表

>>> l=[3,4,5,6]
>>> ll=reversed(l)
>>> l
[3, 4, 5, 6]
>>> ll
<listreverseiterator object at 0x06A07E10>
>>> list(ll)#第一次
[6, 5, 4, 3]
>>> list(ll)#第二次为空,原因见本文最后
[]

3》参数是元组

>>> t=(4,5,6)
>>> tt=reversed(t)
>>> t
(4, 5, 6)
>>> tt
<reversed object at 0x06A07E50>
>>> tuple(tt)#第一次
(6, 5, 4)
>>> tuple(tt)#第二次为空,原因见本文最后
()

4》参数是字符串

>>> s='cba'
>>> ss=reversed(s)
>>> s
'cba'
>>> ss
<reversed object at 0x06A07E70>
>>> list(ss)#第一次
['a', 'b', 'c']
>>> list(ss)#第二次为空,原因见本文最后
[]

5》参数是字符串

>>> s='1234'
>>> ss=reversed(s)
>>> s
'1234'
>>> ss
<reversed object at 0x06A94490>
>>> ''.join(ss)#第一次
'4321'
>>> ''.join(ss)#第二次为空,原因见本文最后
''

为什么reversed()之后,第二次for循环或第二次list()或第二次tuple()或第二次join()得到的结果为空?我们以第2个例子具体说明一下:

That's because reversed creates an iterator, which is already spent when you're calling list(ll) for the second time.

The reason is that ll is not the reversed list itself, but a listreverseiterator. So when you call list(ll) the first time, it iterates over ll and creates a new list from the items output from that iterator.When you do it a second time, ll is still the original iterator and has already gone through all the items, so it doesn't iterate over anything, resulting in an empty list.

小编来翻译一下:

这是因为反向创建了一个迭代器,该迭代器在第二次调用列表(LL)时已经使用过了。

其原因就是ll不是反转列表本身,而是一个列表反向迭代器。所以当你第一次调用列表(ll),它会遍历ll并且创建一个新的列表从项目输出迭代器。当你再进行一次,ll仍然是原来的迭代器,已经经历了所有的项目,所以它不会再遍历什么,这就造成了空列表。

总结:reversed()之后,只在第一次遍历时返回值。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python 多线程应用介绍
Dec 19 Python
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
如何在Python中实现goto语句的方法
May 18 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
Python装饰器用法与知识点小结
Mar 09 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
python实现三种随机请求头方式
Jan 05 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 #Python
python如何拆分含有多种分隔符的字符串
Mar 20 #Python
Python中str.join()简单用法示例
Mar 20 #Python
单利模式及python实现方式详解
Mar 20 #Python
python如何去除字符串中不想要的字符
Jul 05 #Python
python删除某个字符
Mar 19 #Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 #Python
You might like
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
JS常用函数使用指南
2014/11/23 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
在Python的web框架中配置app的教程
2015/04/30 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
从0开始的Python学习016异常
2019/04/08 Python
Python: 传递列表副本方式
2019/12/19 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
北大青鸟学生求职信
2013/09/24 职场文书
干部个人对照检查材料
2014/08/25 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
预备党员转正材料
2014/12/19 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python