Python具有固定元素数和固定间隔的范围
我需要在Pyhton中创建一个类似这样的Python具有固定元素数和固定间隔的范围,python,python-3.x,range,Python,Python 3.x,Range,我需要在Pyhton中创建一个类似这样的范围: 1 ... 4 ... 7 ... 10 ... 13 ... 16 ... 但我想确定的不是范围的终点,而是元素的数量 例如: range_num_of_elements(1, num_of_elements=4, interval=3) 结果是: [1, 4, 7, 10] 我怎么做 编辑:这个问题 没有回答我的问题。我想指定开始、间隔、数值,上面的问题指定开始、结束、数值。您可以使用: 在哪里 这将给 [1, 4, 7, 10] 或
范围
:
1 ... 4 ... 7 ... 10 ... 13 ... 16 ...
但我想确定的不是范围的终点,而是元素的数量
例如:
range_num_of_elements(1, num_of_elements=4, interval=3)
结果是:
[1, 4, 7, 10]
我怎么做
编辑:这个问题
没有回答我的问题。我想指定开始、间隔、数值,上面的问题指定开始、结束、数值。您可以使用:
在哪里
这将给
[1, 4, 7, 10]
或者,您可以按照Tom Karzes在评论中的建议,计算范围
的适当参数:
range(start, start + interval * num_of_elements, interval)
您可以这样定义您的范围:
def my_range(start, num_elements, step):
return range(start, start+step*num_elements, step)
list(my_range(1, 4, 3))
# [1, 4, 7, 10]
这将具有的所有美好的特点;e、 g:
[3*n+1表示范围(4)中的n)]
您需要范围(开始,开始+num\u元素*间隔,间隔)
。这将返回一个范围对象(在Python 3中)。如果需要实际列表,只需将其传递到list()
。借助理解来获得结果的解决方案正在做不必要的工作。您可以使用内置函数range
:list(range(start,num\u elements*interval,interval))
range(start, start + interval * num_of_elements, interval)
def my_range(start, num_elements, step):
return range(start, start+step*num_elements, step)
list(my_range(1, 4, 3))
# [1, 4, 7, 10]
7 in my_range(1, 4, 3) # True
8 in my_range(1, 4, 3) # False