我有一个元组列表:
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')
