Python | Encuentra el número más cercano a k en la lista dada

Dada una lista de números y una variable K, donde K también es un número, escriba un programa en Python para encontrar el número en una lista que se acerque más al número K dado.

Ejemplos:

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

 
Método n. ° 1:min() método de uso

En este enfoque, usamos min el método de Python y aplicamos una clave que encuentra la diferencia absoluta de cada elemento con K y devuelve el elemento que tiene la diferencia mínima.

# 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))
Producción:

9.35

 
Método #2: Usando el numpymódulo

Este enfoque aplica el mismo método pero usando el módulo numpy . Primero convertimos la lista dada en una array. Encuentre la diferencia absoluta con K de cada elemento y devuelva el mínimo.

# 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))
Producción:

9.35

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *