第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python中兩個列表中最近或最近的值

Python中兩個列表中最近或最近的值

慕無忌1623718 2021-09-14 15:34:57
我有兩個清單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]]我需要比較并找到每個輸出列表列表中第一個值的最接近值與每個計算列表列表中的第一個值。例如:我需要將 [0.20,-1.22] 中的 0.20 與 0.99,0.012,0.22,0.44,0.55,0.21 進行比較。等等。如果 0.20 的任何最接近的值在列表中,即;0.20 最接近 0.21。然后取相應列表中的第二個值,即;-6.6 ,然后將 [0.21, -6.6] 中的 -6.6 與 [0.20, -1.22] 中的 -1.22 相乘。我嘗試過的:for i in range(len(req_outlist)):for j in range(len(reqlist)):    #print(req_outlist[j])    if (float(req_outlist[i][0])-float(reqlist[j][0]))==0:        print(reqlist[j][0])    else:        print(" Closest Value")請幫我提供一個代碼來實現(xiàn)這一點。
查看完整描述

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í)行此操作。


查看完整回答
反對 回復 2021-09-14
  • 2 回答
  • 0 關注
  • 385 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號