定义序列的长度而不是步长

rub*_*y74 1 python list range sequence

我是python的新手,想要一个产生包含多个整数的列表的函数,即[1,3,5,7 ....],就像你可以用范围函数那样,即范围(1,21,2) .

但是,我没有设置上限,而是想设置列表的长度,所以我会在列表中说明我想要的起点,步长和整数.这样的功能存在吗?

Mar*_*ers 6

不,但制作一个很容易:

def myrange(start, step, count):
    return range(start, start + (step * count), step) 
Run Code Online (Sandbox Code Playgroud)

简短演示:

>>> myrange(10, 2, 5)
[10, 12, 14, 16, 18]
>>> myrange(10, -2, 5)
[10, 8, 6, 4, 2]
Run Code Online (Sandbox Code Playgroud)

在python 3中,它将返回一个range对象,就像常规range()函数一样:

>>> myrange(10, 2, 5)
range(10, 20, 2)
>>> list(myrange(10, 2, 5))
[10, 12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 5

Martijn Pieter的回答对整数有利.如果startstep可能是浮点数,您可以使用列表理解:

[start+i*step for i in range(count)]
Run Code Online (Sandbox Code Playgroud)