为了账号安全,请及时绑定邮箱和手机立即绑定

python中有办法在给定范围内往复循环一个变量吗?

python中有办法在给定范围内往复循环一个变量吗?

守着星空守着你 2019-04-16 20:27:31
Hi,在python中有简单的写法可以让我在给定范围内往复循环一个变量吗?如,给定range(4),我希望变量像这样变化:0,1,2,3,2,1,0,1,2,3....直到变化指定的次数或者其它条件满足为止。
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

pythonimportitertools
defbounce(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]
                            
查看完整回答
反对 回复 2019-04-16
?
智慧大石

TA贡献1946条经验 获得超3个赞

itertools.cycle(iterable)
Makeaniteratorreturningelementsfromtheiterableandsavingacopyofeach.Whentheiterableisexhausted,returnelementsfromthesavedcopy.Repeatsindefinitely.Equivalentto:
defcycle(iterable):
#cycle('ABCD')-->ABCDABCDABCD...
saved=[]
forelementiniterable:
yieldelement
saved.append(element)
whilesaved:
forelementinsaved:
yieldelement
Note,thismemberofthetoolkitmayrequiresignificantauxiliarystorage(dependingonthelengthoftheiterable).
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 412 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号