我有一个很大的 0 到 1 之间的 float 列表,如下所示:
l1 = [0,0.2,0.9,0.75,0.3,1,0.43,0.65]
我想要的是将这些 float 四舍五入为数字:
l2 = [0,0.25,0.5,0.75,1]
这里的结果是:
r = [0,0.25,1,0.75,0.5,1,0.5,0.75]
我的意思是对于 l1
中的每一项从l2
中选择更接近它的项目并替换为后者。我可以使用一些 for 循环来实现这一点并进行详尽的检查,但我希望有一个更灵活的解决方案。
Python 中有一个库可以优雅地实现这一点吗?
最佳答案
如果l2
始终为[0, 0.25, 0.5, 0.75, 1]
,您可以使用numpy:
r = np.round(4*np.array(l1))/4
输出:
array([0. , 0.25, 1. , 0.75, 0.25, 1. , 0.5 , 0.75])
如果您只想向上舍入,请使用 numpy.ceil:
r = np.ceil(4*np.array(l1))/4
输出:
array([0. , 0.25, 1. , 0.75, 0.5 , 1. , 0.5 , 0.75])
关于python - Python 中的 float 舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71916150/