2 回答

TA貢獻1829條經(jīng)驗 獲得超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. 然后我們只為列表中的每個項目執(zhí)行此操作。
添加回答
舉報