gpt4 book ai didi

Python:在到达末尾时循环遍历列表中的元素

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:04 25 4
gpt4 key购买 nike

我有一个如下所示的列表:

a = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10']

我需要在这个列表中一次循环一个元素,但是当到达列表末尾时,需要反转循环。

例如,使用 itertools.cycle :

from itertools import cycle
a_cycle = cycle(a)
for _ in range(30):
print a_cycle.next()

我得到:

01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10

但我需要的是:

01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 10, 09, 08, 07, 06, 05, 04, 03, 02, 01, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10

我需要循环 a 固定次数,比如 200 次。

最佳答案

您可以 cycle chain您的 areversed 一个,例如:

from itertools import cycle, islice, chain

a = range(1, 11)
b = reversed(a)
c = cycle(chain(a, b))
d = list(islice(c, 100)) # `c` is infinite - hence the `islice` to stop at some point...

这给了你:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

注意:如果a 是可耗尽迭代器,您需要先复制a。但以您的示例为例,这会很好。

关于Python:在到达末尾时循环遍历列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530131/

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