gpt4 book ai didi

python - 如何在指定起始索引的同时无限迭代列表?

转载 作者:行者123 更新时间:2023-11-30 22:43:16 24 4
gpt4 key购买 nike

我有一个名为 all_urls 的列表。我正在尝试无限迭代该列表。我有一个索引 i 我想从它开始。例如:

www.google.com

www.facebook.com

www.linkednin.com

www.yahoo.com

www.microsoft.com

我想从 linkedin 开始迭代,然后进入无限循环。

我尝试查看此链接:

How can I infinitely loop an iterator in Python, via a generator or other?

但此链接没有指定我如何从某个中间点开始。

我已经尝试过

    for url in itertools.cycle(all_urls[i:]):
print "Process URL : " + url

但它不起作用。

最佳答案

您有几个选择。也许最简单的选择是构建一个新的循环列表:

urls = all_urls[i:] + all_urls[:i]
for url in itertools.cycle(urls):
print(url)

我提出的第二个解决方案是仅使用循环的前 i - 1 个元素:

# From https://docs.python.org/2/library/itertools.html#recipes
def consume(iterator, n):
"Advance the iterator n-steps ahead. If n is none, consume entirely."
# Use functions that consume iterators at C speed.
if n is None:
# feed the entire iterator into a zero-length deque
collections.deque(iterator, maxlen=0)
else:
# advance to the empty slice starting at position n
next(itertools.islice(iterator, n, n), None)

urls = itertools.cycle(all_urls)
consume(urls, i - 1)
for url in urls:
print(url)

关于python - 如何在指定起始索引的同时无限迭代列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41837275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com