Change language

Python | Find the closest number to in a given list

| |

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 the `min()`

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

 ` # Python3 program to find the closest number in the 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)) `

Exit:

` 9.35 `

Method # 2: Using `numpy`

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

 ` # Python3 program to find the closest number in the 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)) `

Exit :

` 9.35 `