我有一個類似于[[0,1,2],[9,5,3],[7,0,2]]給定值的嵌套列表4,如何獲得與給定值最接近的值的列表?我看到使用min()可能會有所幫助,但我不確定它是如何工作的。這是唯一的方法還是有其他選擇?預期輸出: [9,5,3]
1 回答

慕俠2389804
TA貢獻1719條經驗 獲得超6個贊
您確實可以使用min()但具有自定義鍵功能:
>>> lst = [[0,1,2],[9,5,3],[7,0,2]]
>>> v = 4
>>> min(lst, key = lambda x: min(abs(i-v) for i in x))
[9, 5, 3]
讓我們稍微分解一下:
>>> [min(abs(i-v) for i in x) for x in lst]
[2, 1, 2]
>>> [[abs(i-v) for i in x] for x in lst]
[[4, 3, 2], [5, 1, 1], [3, 4, 2]]
如果存在平局(即聯合最小值),則min()返回第一個實例
添加回答
舉報
0/150
提交
取消