我需要遍历一个循环列表,可能需要多次遍历,每次都从上一次访问的项目开始。
这种情况用于连接池。客户端请求连接,迭代器检查指向连接是否可用并返回它,否则循环直到找到可用连接为止。
如何在Python中优雅地实现这一点?
如果你需要立即创建一个结果列表,以达到特定的长度,而不是按需进行迭代,请参见Repeat list to max number of elements 获取一般技术,以及How to replicate array to specific length array获取Numpy特定技术。
pool.next()
获取循环中的下一项。该函数将返回下一个项目,直到循环结束。请注意,此函数仅适用于Python 2.x版本,在Python 3.x版本中已被弃用。 - Jacob Kralliterator.next()
手动向前移动任何迭代器。这基本上就是for
循环为您完成的操作。 - Lukas Grafnext(iterator)
(顺便说一下,在 Python 2.x 上也可以正常工作,因此应该使用的是规范形式)。有关更详细的解释,请参见 Is generator.next() visible in python 3.0?。我已相应更新了我的回答。 - Lukas Graf