舍入到增量Python



我正试图编写一个代码,将start列表值舍入到最接近的0.25值。我怎么能做到呢?因此,start列表中的第一个索引是3.645,并且将四舍五入为3.5,因为.0, . 25, 0.5, 0.750.25的唯一增量。由于最后一个索引已经是0.25的倍数,所以2保持为2

start = [3.645, 33.54656, 1.77, 1.99, 2]

预期输出:

[3.5, 33.5, 1.75, 1.75, 2]

这是Python,可能有一些奇特的包可以让您做到这一点,但[int(4*x)/4 for x in start]是一种方法。您也可以执行[x - x % .25 for x in start](模运算符对非整数模也有效)。

然而,我注意到你的最后一个数字只是2,而不是2.0。如果您不希望将整数强制转换为浮点数,则必须执行更复杂的操作,例如[int(x) if int(x) == x else int(4*x)/4 for x in start]。如果你想将四舍五入后为整数的数字转换为int,则必须更复杂,例如[x - x%.25 if x%1 > .25 else int(x) for x in start]

最新更新