为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

眼眸繁星 2023-10-11 15:43:12
我有一个类似于[[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()返回第一个实例


查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 46 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信