首页 > 解决方案 > 使范围列表在指定值处开始和结束的 Pythonic 方法,这要求第一步小于列表其余部分的步骤

问题描述

我有一些有效的代码,但我想知道是否有一种 Pythonic 方法可以做到这一点。用户需要一个频率列表来测试,它永远不会从 0Hz 开始,用户将输入开始、停止和步进值以生成一个值列表来测试某些设备,他们需要的是一个在这些值处开始和停止的列表而不是那些python用来制作范围的。我有这个可行,但我必须捏造起始值。

代码

start = 1
stop = 100
step = 10
out = (list(range(start-start, stop+step, step)))
out[0] = start
print(out)

输出

[1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

有没有一种 Pythonic 的方式来生成列表而不必使用

out[0] = start

线?

标签: pythonlistindexingrange

解决方案


如果您想将相同的逻辑重构为更 Pythonic 的方法,则可以使用列表推导

out = [start if i == 0 else i for i in range(start-start, stop+step, step)]

推荐阅读