 Open in App
Not now

# Python program to find smallest number in a list

• Difficulty Level : Easy
• Last Updated : 30 Jan, 2023

We are given a list of numbers and our task is to write a Python program to find the smallest number in given list. For the following program we can use various methods including the built-in min method, sorting the  array and returning the last element, etc.
Example:

```Input : list1 = [10, 20, 4]
Output : 4

Input : list2 = [20, 10, 20, 1, 100]
Output : 1```

## Sorting the list to find smallest number in a list

### In Ascending order

Here writing a Python program where we are sorting the entire list and then returning the first element as it’ll be the smallest element present in the list.

## Python3

 `# Python program to find smallest ` `# number in a list`   `# list of numbers` `list1 ``=` `[``10``, ``20``, ``4``, ``45``, ``99``]`   `# sorting the list` `list1.sort()`   `# printing the first element` `print``(``"Smallest element is:"``, list1[``0``])`

Output:

`smallest element is: 4`

### In Descending order

Here we are sorting using the sort() function the entire list and then returning the last element as it’ll be the smallest element present in the list.

## Python3

 `# list of numbers` `list1 ``=` `[``10``, ``20``, ``4``, ``45``, ``99``]`   `# sorting the list` `list1.sort(reverse``=``True``)`   `# printing the first element` `print``(``"Smallest element is:"``, list1[``-``1``])`

Output:

`smallest element is: 4`

## Using min() Method to find smallest number in a list

Here we are using the min Method and then returning the smallest element present in the list.

## Python3

 `# Python program to find smallest ` `# number in a list`   `# list of numbers` `list1 ``=` `[``10``, ``20``, ``1``, ``45``, ``99``]`     `# printing the maximum element` `print``(``"Smallest element is:"``, ``min``(list1))`

Output:

`Smallest element is: 1`

## Python3

 `# Python program to find smallest ` `# number in a list`   `# creating empty list` `list1 ``=` `[]`   `# asking number of elements to put in list` `num ``=` `int``(``input``(``"Enter number of elements in list: "``))`   `# iterating till num to append elements in list` `for` `i ``in` `range``(``1``, num ``+` `1``):` `    ``ele``=` `int``(``input``(``"Enter elements: "``))` `    ``list1.append(ele)` `    `  `# print maximum element` `print``(``"Smallest element is:"``, ``min``(list1))`

Output:

```Enter number of elements in list: 4
Enter elements: 12
Enter elements: 19
Enter elements: 11
Enter elements: 99
Smallest element is: 11```

## Python3

 `# Python program to find smallest ` `# number in a list`   `l``=``[ ``int``(l) ``for` `l ``in` `input``(``"List:"``).split(``","``)]` `print``(``"The list is "``,l)`   `# Assign first element as a minimum.` `min1 ``=` `l[``0``]`   `for` `i ``in` `range``(``len``(l)):`   `    ``# If the other element is min than first element` `    ``if` `l[i] < min1: ` `        ``min1 ``=` `l[i] ``#It will change`   `print``(``"The smallest element in the list is "``,min1)`

Input:

`List: 23,-1,45,22.6,78,100,-5`

Output:

```The list is ['23', '-1', '45', '22.6', '78', '100','-5']
The smallest element in the list is  -5```

## Using the lambda function to find smallest number in a list

Here we are using the lambda function to print the smallest number present in the list.

## Python3

 `# Python code to print smallest element in the list`   `lst ``=` `[``20``, ``10``, ``20``, ``1``, ``100``]` `print``(``min``(lst, key``=``lambda` `value: ``int``(value)) )`

Output:

`1`

## Using the enumerate function to find smallest number in a list

Here we are iterating over the list using the enumerate() function and returning the last element.

## Python3

 `lst ``=` `[``20``, ``10``, ``20``, ``1``, ``100``] ` `a,i ``=` `min``((a,i) ``for` `(i,a) ``in` `enumerate``(lst))` `print``(a)`

Output:

`1`

## Using reduce function to find the smallest number in a list

Here we are iterating over the list using reduce() function and returning the smallest element.

## Python

 `# Python code to print smallest element in the list` `from` `functools ``import` `reduce` `lst ``=` `[``20``, ``10``, ``20``, ``15``, ``100``]` `print``(``reduce``(``min``,lst) )`

Output

`10`

### Using heap:

One approach is to use a heap data structure. A heap is a complete binary tree that satisfies the heap property: the value of each node is at least as great as the values of its children. This property allows us to efficiently find the largest or smallest element in the heap in O(1) time.

To find the smallest element in a list using a heap, we can first build a min heap using the elements in the list. Then, we can simply return the root element of the heap, which will be the smallest element in the heap.

Here is an example of how this can be done in Python:

## Python3

 `import` `heapq`   `def` `find_smallest(numbers):` `    ``# Build a min heap using the elements in the list` `    ``heap ``=` `[(x, x) ``for` `x ``in` `numbers]` `    ``heapq.heapify(heap)` `    `  `    ``# Return the root element (smallest element)` `    ``_, smallest ``=` `heapq.heappop(heap)` `    `  `    ``return` `smallest`   `# Test the function` `numbers ``=` `[``10``, ``20``, ``4``, ``45``, ``99``]` `print``(find_smallest(numbers))  ``# Output: 4` `#This code is contributed by Edula Vinay Kumar Reddy`

Output

`4`

This approach has a time complexity of O(n log n) for building the heap and O(1) for finding the smallest element, making it more efficient than the methods mentioned in the article which have a time complexity of O(n).

### Method: Using recursion

We can use recursive function to find the smallest number in the list.

## Python3

 `def` `Findsmall(itr,ele,list1): ``#recursive function to find smallest number` `  ``if` `itr ``=``=` `len``(list1):        ``#base condition` `    ``print``(``"The smallest number in the list is "` `,ele)` `    ``return` `  ``if` `list1[itr]

Output

`The smallest number in the list is  2`

Time complexity: O(n)  It will perform n recursive calls so the time complexity  will be O(n).
Auxiliary Space: O(n) ,It will perform n recursive calls each recursive call pushed into stack so the space complexity will be O(n)

### Using numpy module:

We can use numpy module to find the smallest number in the list.

## Python3

 `#importing module` `import` `numpy as np`   `#Initializing list` `lis ``=` `[``5``, ``7``, ``2``, ``8``, ``9``]`   `#finding minimum value` `minimum ``=` `np.``min``(lis)`   `#printing output` `print``(``"The smallest number in the list is"``, minimum)` `#This code contributed by tvsk`

Output

`The smallest number in the list is 2`

Time complexity: O(n), here n is the size of the input list. This is because the numpy min function iterates over each element in the list once to find the minimum value.
Auxiliary Space: O(1), as it only requires a single variable “minimum” to store the result.

My Personal Notes arrow_drop_up
Related Articles