微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

第二次使用“反向”迭代器时的空列表 [] 的原因空 list解决方案

如何解决第二次使用“反向”迭代器时的空列表 [] 的原因空 list解决方案

为什么第二个打印命令给出一个空列表而第一个给出正确的输出

str1 = 'Hello'

str2 = reversed(str1)

print(list(str2))
print(list(str2))

输出

['o','l','e','H']
[]

解决方法

reversed 是一个迭代器,迭代器只能被消耗一次,这意味着一旦你迭代它们,你就不能再做一次。

Check the documentation

,

[] 的原因(空 list

内置的 reversed 是一个迭代器,因此一旦您消耗它,它就会耗尽,通过创建 list。在你的情况下,一旦你做到了,list(revered("Hello")),它就会变得,精疲力竭

解决方案

一个快速的解决方案可能是制作另一个迭代器,代码:

str1 = "Hello" # Original String 

iter1 = reversed(str1) # Making the first iterator 
iter2 = reversed(str1) # Making the second iterator 

print(list(iter1),list(iter2)) # Printing the iterator once they are lists

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。