我有一个类似于[[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
提交
取消