查找与列表中给出的数字最接近的数字〜Python [英] Find The Closest Number To Numbers Given In A List ~ Python

查看:93
本文介绍了查找与列表中给出的数字最接近的数字〜Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与列表中给出的数字相比,您如何找到最接近的数字?

How would you find the closest number in comparison to numbers given in a list?

这是我到目前为止尝试过的,但是没有成功:

This is what I have tried so far, but it has been unsuccessful:

setted_list = [2,9,6,20,15]
value_chosen = 17

while True:
    final_value = setted_list[0]
    if setted_list[1] - value_chosen < setted_list[0] - value_chosen:
        final_value = setted_list[1]
    if setted_list[2] - value_chosen < setted_list[1] - value_chosen:
        final_value = setted_list[2]
    if setted_list[3] - value_chosen < setted_list[2] - value_chosen:
        final_value = setted_list[3]
    if setted_list[4] - value_chosen < setted_list[3] - value_chosen:
        final_value = setted_list[4]
print(final_value)

我的输出始终是 setted_list [2] 的值内的值.我的算法哪里出错了?

My output is always what is inside the value of setted_list[2]. Where have I gone wrong in my algorithm?

推荐答案

如果您还不太懂lambda函数,

If you are too new to understand lambda functions yet,

   minimum = float("inf")
   setted_list = [2,9,6,20,15]
   value_chosen = 17
   for val in setted_list:
       if abs(val - value_chosen) < minimum:
           final_value = val
           minimum = abs(val - value_chosen)


   print final_value

这篇关于查找与列表中给出的数字最接近的数字〜Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆