Skip to main content
 首页 » 编程设计

python之查找最接近特定值的数字

2025年05月04日16mengfanrong

我有一个元组列表:

lst = [('54', '1.74', '253.2'), ('342', '2.85', '13.46'), ('53','2.43', '15.63')] 

我想找到位置 [1] 最接近 2.0 的元组

我是这样走的:

number = lst[0][1] 
for i in lst: 
    if abs(float(i[1]) - 2) < float(number): 
        number = i[1] 
        if number in i: 
            print i 

但是当我尝试将字符串转换为 float 时,它引发了一个异常;/我实际上该如何做呢?

请您参考如下方法:

这应该可以解决问题......

min(lst,key=lambda x: abs(float(x[0]) - 2)) 

min 函数将根据key 函数比较列表中的每个元素。

演示:

>>> lst = [('1.74', '253.2'), ('2.85', '13.46'), ('2.43', '15.63')] 
>>> min(lst,key=lambda x: abs(float(x[0]) - 2)) 
('1.74', '253.2')