更改范围函数内的步长值? [英] Change step value inside range function?
本文介绍了更改范围函数内的步长值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
list1 = [1, 2, 3, 4]
我正在尝试找出一种方法来更改每个打印的 i 的步长值
我的尝试
r = 0对于范围内的 i (0, 10, list1[r]):打印我r = r + 1
解决方案
我建议使用 while
循环为此实现您自己的生成器.示例 -
def changed_step_range(start,stop,stepiter):步骤=迭代器(步进器)而开始 <停止:产量开始开始 += 下一步(步骤)
然后你可以把它用作 -
for i in changed_step_range(start,stop,steplist):#做你的逻辑.
我们执行 step = iter(stepiter)
以便 stepiter
可以是任何类型的迭代.
演示 -
<预><代码>>>>def changed_step_range(start,stop,stepiter):... step = iter(stepiter)...而开始<停止:...产量开始...开始+=下一步(步骤)...>>>对于在variated_step_range(0,10,[1,2,3,4])中的我:...打印我...0136list1 = [1, 2, 3, 4]
i'm trying to figure out a way to change the step value for each printed i
What I've tried
r = 0
for i in range(0, 10, list1[r]):
print i
r = r + 1
解决方案
I would suggest implementing a generator of your own for this using while
loop. Example -
def varied_step_range(start,stop,stepiter):
step = iter(stepiter)
while start < stop:
yield start
start += next(step)
Then you can use this as -
for i in varied_step_range(start,stop,steplist):
#Do your logic.
We do the step = iter(stepiter)
so that stepiter
can be any kind of iterable.
Demo -
>>> def varied_step_range(start,stop,stepiter):
... step = iter(stepiter)
... while start < stop:
... yield start
... start += next(step)
...
>>> for i in varied_step_range(0,10,[1,2,3,4]):
... print i
...
0
1
3
6
这篇关于更改范围函数内的步长值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文