Skip to content
Related Articles

Related Articles

Python | Find closest number to k in given list

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 17 Oct, 2019
Improve Article
Save Article

Given a list of numbers and a variable K, where K is also a number, write a Python program to find the number in a list which is closest to the given number K.

Examples:

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

 
Method #1 : Using min() method

In this approach, we use min method from Python and apply a key that finds the absolute difference of each element with K, and returns the element having minimum difference.




# 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))

Output:

9.35

 
Method #2 : Using numpy module

This approach applies the same method but using numpy module. First we convert the given list to an array. Find absolute difference with K of each element, and return the minimum from it.




# 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))

Output:

9.35

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!