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实现封装得到virustotal扫描结果
Oct 05 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
python如何实现int函数的方法示例
Feb 19 Python
python处理两种分隔符的数据集方法
Dec 12 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
python tqdm库的使用
Nov 30 Python
python中实现栈的三种方法
Dec 19 Python
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
Apr 27 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
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
JS 自动安装exe程序
2008/11/30 Javascript
javascript 函数调用规则
2009/08/26 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
js函数排序的实例代码
2013/07/01 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
Python对列表中的各项进行关联详解
2017/08/15 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python Opencv将图片转为字符画
2021/02/19 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
如何在python中实现随机选择
2019/11/02 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
人力资源专员自我评价怎么写
2013/09/19 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
护士实习鉴定范文
2013/12/22 职场文书
高中生班主任评语
2014/04/25 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫