python设置循环范围_python给指定范围内循环变量方法是?

Hi,在python中有简单的写法可以让我在给定范围内往复循环一个变量吗? 如,给定range(4),我希望变量像这样变化: 0,1,2,3,2,1,0,1,

Hi,在python中有简单的写法可以让我在给定范围内往复循环一个变量吗?

如,给定range(4),我希望变量像这样变化:

0,1,2,3,2,1,0,1,2,3....直到变化指定的次数或者其它条件满足为止。

只是整数的话,直接取余就行pythonimport itertools

def bounce(interval):

"""Infinite bounce for specific range list."""

down = reversed(interval[1:-1])

return itertools.cycle(itertools.chain(interval, down))

# >>> list(itertools.islice(bounce(range(5)), 20))

# [0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3]

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