在容器上执行多次迭代的正确方法是什么?来自 python 文档:
迭代器 - 每次将容器对象(例如列表)传递给 iter() 函数或在 for 循环中使用它时,它都会生成一个新的迭代器。使用迭代器尝试此操作只会返回与上一次迭代过程中使用的相同的耗尽迭代器对象,使其看起来像一个空容器。
该协议的意图是一旦迭代器的 next() 方法引发 StopIteration,它将在后续调用中继续这样做。不遵守此属性的实现被视为已损坏。(此约束是在 Python 2.3 中添加的;在 Python 2.2 中,根据此规则破坏了各种迭代器。)
如果我有这个代码:
slist = [1,2,3,4]
rlist = reversed(slist)
list(rlist)
#[4,3,2,1]
tuple(rlist)
#()
迭代“rlist”两次的最简单和最正确的方法是什么?