Python内置函数reversed()用法分析
本文实例讲述了Python内置函数reversed()用法。分享给大家供大家参考,具体如下:
reversed()函数是返回序列seq的反向访问的迭代器。参数可以是列表,元组,字符串,不改变原对象。
1》参数是列表
>>>l=[1,2,3,4,5] >>>ll=reversed(l) >>>l [1,2,3,4,5] >>>ll>>>foriinll:#第一次遍历 ...printi, ... 54321 >>>foriinll:第二次遍历为空,原因见本文最后 ...printi ...
2》参数是列表
>>>l=[3,4,5,6] >>>ll=reversed(l) >>>l [3,4,5,6] >>>ll>>>list(ll)#第一次 [6,5,4,3] >>>list(ll)#第二次为空,原因见本文最后 []
3》参数是元组
>>>t=(4,5,6) >>>tt=reversed(t) >>>t (4,5,6) >>>tt>>>tuple(tt)#第一次 (6,5,4) >>>tuple(tt)#第二次为空,原因见本文最后 ()
4》参数是字符串
>>>s='cba' >>>ss=reversed(s) >>>s 'cba' >>>ss>>>list(ss)#第一次 ['a','b','c'] >>>list(ss)#第二次为空,原因见本文最后 []
5》参数是字符串
>>>s='1234' >>>ss=reversed(s) >>>s '1234' >>>ss>>>''.join(ss)#第一次 '4321' >>>''.join(ss)#第二次为空,原因见本文最后 ''
为什么reversed()之后,第二次for循环或第二次list()或第二次tuple()或第二次join()得到的结果为空?我们以第2个例子具体说明一下:
That'sbecausereversedcreatesaniterator,whichisalreadyspentwhenyou'recallinglist(ll)forthesecondtime.
Thereasonisthatllisnotthereversedlistitself,butalistreverseiterator.Sowhenyoucalllist(ll)thefirsttime,ititeratesoverllandcreatesanewlistfromtheitemsoutputfromthatiterator.Whenyoudoitasecondtime,llisstilltheoriginaliteratorandhasalreadygonethroughalltheitems,soitdoesn'titerateoveranything,resultinginanemptylist.
小编来翻译一下:
这是因为反向创建了一个迭代器,该迭代器在第二次调用列表(LL)时已经使用过了。
其原因就是ll不是反转列表本身,而是一个列表反向迭代器。所以当你第一次调用列表(ll),它会遍历ll并且创建一个新的列表从项目输出迭代器。当你再进行一次,ll仍然是原来的迭代器,已经经历了所有的项目,所以它不会再遍历什么,这就造成了空列表。
总结:reversed()之后,只在第一次遍历时返回值。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。