2 回答
TA贡献1829条经验 获得超7个赞
你可以这样做:
calculated_list = [[0.99, -9.58], [0.012, -9.88], [0.22, -9.56], [0.44, -6.6],
[0.55, -7.7], [0.21, -6.6]]
output_list = [[0.20, -1.22], [0.22, -1.44], [0.1, -1.55], [0.43, -1.88], [0.34, 1.9],
[0.33, 0.2]]
def FindClosest(input_list, input_point):
output_value = min(map(lambda x: [abs(x[0] - input_point[0]), x[1]], input_list), key = lambda k: k[0])
return [ input_point[0], input_point[1] * output_value[1] ]
result = list(map(lambda x: FindClosest(calculated_list, x), output_list))
print(result)
>>> [[0.2, 8.052], [0.22, 13.7664], [0.1, 15.314000000000002], [0.43, 12.408], [0.34, -12.54], [0.33, -1.32]]
本质上,这些代码所做的就是遍历列表并将您提交的值input_point与该索引的子列表中的第一项之间的差异与当前的最小差异进行比较。如果小于,则计算该值并更新最小差值。最后,它被附加到result. 然后我们只为列表中的每个项目执行此操作。
添加回答
举报