我正试图编写一个代码,将start
列表值舍入到最接近的0.25值。我怎么能做到呢?因此,start
列表中的第一个索引是3.645
,并且将四舍五入为3.5
,因为.0, . 25, 0.5, 0.75
是0.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]