在范围函数内更改步长值? [英] Change step value inside range function?

查看:26
本文介绍了在范围函数内更改步长值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

list1 = [1, 2, 3, 4]

我正在尝试找出一种方法来更改每个打印 i 的步长值

i'm trying to figure out a way to change the step value for each printed i

我尝试过的

r = 0
for i in range(0, 10, list1[r]):
    print i
    r = r + 1

推荐答案

我建议使用 while 循环来实现你自己的生成器.示例 -

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.

我们执行 step = iter(stepiter) 以便 stepiter 可以是任何类型的可迭代对象.

We do the step = iter(stepiter)so that stepiter can be any kind of iterable.

演示 -

>>> 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆