如何高效查找列表中与输入值最接近的元素
高效查找列表中与目标值最接近的元素
最优实现方案
用Python内置的min()函数配合key参数,一行代码就能完成,比手动写for循环更简洁且性能更优(底层由C实现,执行速度更快):
mylist = [1,8,4,88,100] inp = 5 closest_element = min(mylist, key=lambda x: abs(x - inp)) print(closest_element) # 输出: 4
逻辑说明
lambda x: abs(x - inp)作为排序依据的key函数,计算每个元素与目标值inp的绝对值差,差值越小代表元素越接近目标值min()函数会根据这个key值的大小,返回对应key值最小的原列表元素
补充说明
如果列表中存在多个元素与目标值的差值相同(比如mylist = [3,7], inp=5),min()会返回列表中先出现的那个元素(此例中为3)。
内容的提问来源于stack exchange,提问作者nogoriv567
相关产品推荐
相关产品推荐

