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实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
浅谈Python单向链表的实现
Dec 24 Python
Python使用QRCode模块生成二维码实例详解
Jun 14 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
python 快速把超大txt文件转存为csv的实例
Oct 26 Python
selenium+python设置爬虫代理IP的方法
Nov 29 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
详解Python描述符的工作原理
Jun 11 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
2018/08/22 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Python快速从注释生成文档的方法
2016/12/26 Python
解读! Python在人工智能中的作用
2017/11/14 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python 如何创建一个线程池
2020/07/28 Python
10张动图学会python循环与递归问题
2021/02/06 Python
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
师范生自我鉴定
2014/03/20 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
2015年手术室工作总结
2015/05/11 职场文书
死亡诗社观后感
2015/06/05 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
SpringBoot2零基础到精通之异常处理与web原生组件注入
2022/03/22 Java/Android
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python