【发布时间】:2021-04-29 19:23:16
【问题描述】:
我有一个数字列表,我希望以某种方式将其转换为单位步进形式
这些是我的界限
[367.3090551181102, 371.73179133858264, 376.1545275590551, 380.5772637795276, 385.0]
这是我的数据
[367.3090551181102, 370, 370, 370, 370, 370, 370, 370, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 368, 369, 368, 368, 368, 368, 368, 368, 368, 368, 369, 370, 367.3090551181102, 367.3090551181102, 367.3090551181102, 370, 368, 373, 369, 371, 368, 367.3090551181102, 367.3090551181102, 367.3090551181102, 369, 367.3090551181102, 372, 367.3090551181102, 368, 368, ...]
我想要做的是基本上将数据中的每个数字向下或向上舍入到边界。数字在下边界和上边界之间。
假设数字是 370,我想将它四舍五入到 371.73... 因为它在 367.309... 和 371.73... 之间,或者数字是 381,那么我想将它四舍五入到 370.57...
这是我的代码,但我有点困惑
def unit_step(data,boundaries):
us = []
for d in data:
if(boundaries[0] < d < boundaries[1]):
us.append(rounder(boundaries[0],boundaries[1],d))
elif(boundaries[1] < d < boundaries[2]):
us.append(rounder(boundaries[1],boundaries[2],d))
elif(boundaries[2] < d < boundaries[3]):
us.append(rounder(boundaries[2],boundaries[3],d))
elif(boundaries[3] < d < boundaries[4]):
us.append(rounder(boundaries[3],boundaries[4],d))
return us
我在另一个 for 循环中尝试了 for 循环,但没有成功。
我哪里错了,或者与双循环相比它是一种有用的方法吗?
【问题讨论】:
-
@MadyDaby 不是我要找的那个