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 web程序
Sep 11 Python
Python对数据库操作
Mar 28 Python
Python 专题一 函数的基础知识
Mar 16 Python
python实现批量图片格式转换
Jun 16 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
对python字典过滤条件的实例详解
Jan 22 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
基于pandas中expand的作用详解
Dec 17 Python
基于Python正确读取资源文件
Sep 14 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
python-for x in range的用法(注意要点、细节)
May 10 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Python 使用PIL numpy 实现拼接图片的示例
2018/05/08 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
七年级数学教学反思
2014/01/22 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
python字符串的一些常见实用操作
2022/04/06 Python