itertools.cycle(iterable)
Make an iterator returning elements from the iterable and saving a copy of each. When the iterable is exhausted, return elements from the saved copy. Repeats indefinitely. Equivalent to:
def cycle(iterable):
# cycle('ABCD') --> A B C D A B C D A B C D ...
saved = []
for element in iterable:
yield element
saved.append(element)
while saved:
for element in saved:
yield element
Note, this member of the toolkit may require significant auxiliary storage (depending on the length of the iterable).
from itertools import cycle, chain
# Get a sequence like (0,1,2,3,2,1)
base_sequence = chain(range(n), range(n - 2, 0, -1))
for i in cycle(base_sequence):
# do something
if condition_satisfied:
break
itertools.cycle(iterable)Make an iterator returning elements from the iterable and saving a copy of each. When the iterable is exhausted, return elements from the saved copy. Repeats indefinitely. Equivalent to:
Note, this member of the toolkit may require significant auxiliary storage (depending on the length of the iterable).
只是整数的话,直接取余就行
其实我想要的是从小到大,再从大到下,再从小到大,并不是直接重复的过程。
我后来自己想了一个实现