Hi,在python中有简单的写法可以让我在给定范围内往复循环一个变量吗?如,给定range(4),我希望变量像这样变化:0,1,2,3,2,1,0,1,2,3....直到变化指定的次数或者其它条件满足为止。
2 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
pythonimportitertoolsdefbounce(interval):"""Infinitebounceforspecificrangelist."""down=reversed(interval[1:-1])returnitertools.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]
智慧大石
TA贡献1946条经验 获得超3个赞
itertools.cycle(iterable)Makeaniteratorreturningelementsfromtheiterableandsavingacopyofeach.Whentheiterableisexhausted,returnelementsfromthesavedcopy.Repeatsindefinitely.Equivalentto:defcycle(iterable):#cycle('ABCD')-->ABCDABCDABCD...saved=[]forelementiniterable:yieldelementsaved.append(element)whilesaved:forelementinsaved:yieldelementNote,thismemberofthetoolkitmayrequiresignificantauxiliarystorage(dependingonthelengthoftheiterable).
添加回答
举报
0/150
提交
取消
