从嵌套列表中查找最接近给定值的值

我有一个类似于[[0,1,2],[9,5,3],[7,0,2]]给定值的嵌套列表4,如何获得与给定值最接近的值的列表?我看到使用min()可能会有所帮助,但我不确定它是如何工作的。这是唯一的方法还是有其他选择?

预期输出: [9,5,3]


眼眸繁星
浏览 73回答 1
1回答

慕侠2389804

您确实可以使用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()返回第一个实例
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python