python - 更改范围函数内的步长值?

标签 python python-2.7 range

list1 = [1, 2, 3, 4]

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

我尝试过的

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

最佳答案

我建议使用 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

关于python - 更改范围函数内的步长值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33145456/

相关文章:

python - step_size为0的滑动窗口算法怎么写?

excel - VBA SUM 可变范围

python - 如何在python中选择矩阵中的非零列

python - 如何有条件地跳过 python 中 for 循环中的迭代步骤数?

Python简单的网络服务器

python - Popen Windows 中的“^' is ignored by Python - how to escape ' ^”字符?

python - 需要运行 Python 3.5

swift - 确定 Range 是否包含值

python - 使用 pandas 将字符串值重新映射到新标签

python - Pandas - 将括号中带有值的文本拆分为多列