你如何操纵范围函数的第三个参数上升n的因子?

Tra*_*vis 2 python python-3.x

Python的for循环接受for循环范围内的三个参数.我怎么能操纵第三个参数成为一个因素?

factor_of = 2
li = []
for i in range(first_value, 25000, factor_of):
    li.append(i)
Run Code Online (Sandbox Code Playgroud)

现在我意识到每次都会增加2,但是如何将它变为第一个值factor_of每次乘以的位置并存储在i值中?

期望的影响是(假设first_value设置为10)

[10, 20, 40, 80, 160, ...]
Run Code Online (Sandbox Code Playgroud)

是的,我知道这在while循环中更有意义.

Del*_*gan 5

使用内置功能无法做到这一点range().但是,您可以定义自己的生成器,如下所示:

def range_factor(start, stop, factor_of):
    while start < stop:
        yield start
        start *= factor_of

li = list(range_factor(10, 25000, 2))
# [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 20480]
Run Code Online (Sandbox Code Playgroud)