## Question

Asked By – Ricky Robinson

Given a list of integers, I want to find which number is the closest to a number I give in input:

```
>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> takeClosest(myList, myNumber)
...
4
```

Is there any quick way to do this?

**Now we will see solution for issue: From list of integers, get number closest to a given value **

## Answer

If we are not sure that the list is sorted, we could use the built-in `min()`

function, to find the element which has the minimum distance from the specified number.

```
>>> min(myList, key=lambda x:abs(x-myNumber))
4
```

Note that it also works with dicts with int keys, like `{1: "a", 2: "b"}`

. This method takes O(n) time.

If the list is already sorted, or you could pay the price of sorting the array once only, use the bisection method illustrated in @Lauritz’s answer which only takes O(log n) time (note however checking if a list is already sorted is O(n) and sorting is O(n log n).)

This question is answered By – kennytm

**This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 **