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

时间:2013-01-08 21:31:43

标签: python list range sequence

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

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

2 个答案:

答案 0 :(得分:6)

不,但制作一个很容易:

def myrange(start, step, count):
    return range(start, start + (step * count), step) 

简短演示:

>>> myrange(10, 2, 5)
[10, 12, 14, 16, 18]
>>> myrange(10, -2, 5)
[10, 8, 6, 4, 2]

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

>>> myrange(10, 2, 5)
range(10, 20, 2)
>>> list(myrange(10, 2, 5))
[10, 12, 14, 16, 18]

答案 1 :(得分:5)

Martijn Pieter的答案对整数有利。如果startstep可能是花车,您可以使用list comprehension

[start+i*step for i in range(count)]