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 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
python with statement 进行文件操作指南
Aug 22 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
一看就懂得Python的math模块
Oct 21 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
Django REST framework 视图和路由详解
Jul 19 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
pandas数值排序的实现实例
Jul 25 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
.htaccess文件保护实例讲解
2011/02/06 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
Vuex提升学习篇
2018/01/11 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
Vue封装全局过滤器Filters的步骤
2020/09/16 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详解python实现交叉验证法与留出法
2019/07/11 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
Python字典dict常用方法函数实例
2020/11/09 Python
python 实用工具状态机transitions
2020/11/21 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
艺人经纪人岗位职责
2014/04/15 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
创业计划书之网吧
2019/10/10 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
详解PyTorch模型保存与加载
2022/04/28 Python