从零到n到零的单个python循环

rda*_*ger 1 python loops

是否有一种Pythonesque方法来创建一个循环,遍历从0到n然后再回到0的范围?我可以创建2个循环(一个前进和一个反向),但我正在寻找单循环.

我的目标是拥有一个从0到1024到0的无限循环.

Wil*_*sem 5

你可以用itertools它:

如果你想转到1024并返回一次,你可以使用:

from itertools import chain

for i in chain(range(0,1024),range(1024,0,-1)):
    print(i)
Run Code Online (Sandbox Code Playgroud)

如果你经常需要这个,你可以使用一个函数来生成iterable:

def range_back(start,end):
    return chain(range(start,end),range(end,start,-1))
Run Code Online (Sandbox Code Playgroud)

并使用它像:

for i in range_back(0,1024):
    print(i)
Run Code Online (Sandbox Code Playgroud)

或者如果你想无限次地这样做:

from itertools import chain, cycle

for i in cycle(chain(range(0,1024),range(1024,0,-1))):
    print(i)
Run Code Online (Sandbox Code Playgroud)