我想使用
range
(或 np.arange
)创建值列表。我需要指定第一个值(必须 >0)、步进和停止。
我不能在这里使用理解列表。
现在我有了这个,但我正在寻找一种Pythonic线路解决方案:
def create_range_list(start, min_value, max_value, step):
return [x for x in range(start, max_value + 1, step) if x >= min_value]
# Example usage
start = 3
min_value = 4
max_value = 20
step = 5
result = create_range_list(start, min_value, max_value, step)
print(result) # Output: [8, 13, 18]
当
start < min_value
时,您需要将其增加step
足够的次数才能成为>= min_value
。这可以通过 while
循环来完成,但您也可以使用模数来计算。
def create_range_list(start, min_value, max_value, step):
if start < min_value:
start = min_value + (start - min_value) % step
return list(range(start, max_value, step))