📌  相关文章
📜  Python|在给定列表中找到最接近 k 的数字

📅  最后修改于: 2022-05-13 01:55:24.867000             🧑  作者: Mango

Python|在给定列表中找到最接近 k 的数字

给定一个数字列表和一个变量 K,其中 K 也是一个数字,编写一个Python程序来查找列表中最接近给定数字 K 的数字。

例子:

Input : lst = [3.64, 5.2, 9.42, 9.35, 8.5, 8], K = 9.1
Output : 9.35

Input : lst = [9, 11, 5, 3, 25, 18], K = 6
Output : 5


方法 #1:使用min()方法

在这种方法中,我们使用Python中的min方法并应用一个键来查找每个元素与 K 的绝对差,并返回具有最小差的元素。

# Python3 program to find Closest number in a list
  
def closest(lst, K):
      
    return lst[min(range(len(lst)), key = lambda i: abs(lst[i]-K))]
      
# Driver code
lst = [3.64, 5.2, 9.42, 9.35, 8.5, 8]
K = 9.1
print(closest(lst, K))
输出:
9.35


方法 #2:使用numpy模块

这种方法应用相同的方法,但使用numpy模块。首先,我们将给定的列表转换为数组。求每个元素与 K 的绝对差,并从中返回最小值。

# Python3 program to find Closest number in a list
import numpy as np
def closest(lst, K):
      
     lst = np.asarray(lst)
     idx = (np.abs(lst - K)).argmin()
     return lst[idx]
      
# Driver code
lst = [3.64, 5.2, 9.42, 9.35, 8.5, 8]
K = 9.1
print(closest(lst, K))
输出:
9.35