是否有一种Pythonesque方法来创建一个循环,遍历从0到n然后再回到0的范围?我可以创建2个循环(一个前进和一个反向),但我正在寻找单循环.
我的目标是拥有一个从0到1024到0的无限循环.
你可以用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)