更改范围内的步长值功能?

发布于 2021-01-29 15:02:20

list1 = [1, 2, 3, 4]

我试图找出一种方法来更改每个打印的步骤值

我尝试过的

r = 0
for i in range(0, 10, list1[r]):
    print i
    r = r + 1
关注者
0
被浏览
62
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我建议为此使用while循环实现自己的生成器。范例-

    def varied_step_range(start,stop,stepiter):
        step = iter(stepiter)
        while start < stop:
            yield start
            start += next(step)
    

    然后,您可以将其用作-

    for i in varied_step_range(start,stop,steplist):
        #Do your logic.
    

    我们这样step = iter(stepiter)做是stepiter可以进行任何迭代的。


    演示-

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看