Python内置函数reversed()用法分析
本篇章节讲解Python内置函数reversed()用法。分享给大家供大家参考,具体如下:
1》参数是列表 >>> l=[1,2,3,4,5] >>> ll=reversed(l) >>> l [1,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,5,6] >>> ll=reversed(l) >>> l [3,6] >>> ll <listreverseiterator object at 0x06A07E10> >>> list(ll)#第一次 [6,3] >>> list(ll)#第二次为空,原因见本文最后 [] 3》参数是元组 >>> t=(4,6) >>> tt=reversed(t) >>> t (4,6) >>> tt <reversed object at 0x06A07E50> >>> tuple(tt)#第一次 (6,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)#第二次为空,原因见本文最后 '' 为什么 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数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》 希望本文所述对大家Python程序设计有所帮助。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |