Open In App

Python program to find smallest number in a list

Last Updated : 23 Jun, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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

Time Complexity: O(nlogn)
Auxiliary Space: O(1)

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 minimum element
print("Smallest element is:", min(list1))


Output: 

Smallest element is: 1

Time Complexity: O(n)
Auxiliary Space: O(n), where n is length of list

Find minimum list element for a user defined list

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 minimum 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

Find the smallest element in list comparing every element

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]<ele: #check the current element less than minimum or not
    ele  =  list1[itr]
  Findsmall(itr+1,ele,list1) #recursive function call
  return
#driver code
lis=[5,7,2,8,9]
ele = lis[0]
Findsmall(0,ele,lis)
#This code is contributed by Vinay Pinjala


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.

Finding the minimum element in a list that consists of duplicate elements –

We might be given a certain list in which some of the elements have been repeated. The minimum element could be one of those repeating elements, but it will be printed the same amount of time it is present in the list. How to avoid that ?

Python3




# defining the list
arr = [5,2,3,2,5,4,7,9,7,10,15,68]
 
# converting the list into set
set_arr = set(arr)
 
# Now using the min function to get the minimum
# value from the set
 
print(min(set_arr))


Output

2

Find all the positions of the minimum value in a list that consists of duplicate elements –

Here we will now see how we can print all the positions (index) of the minimum value which is present multiple times in the same list. We will use a dictionary to store all the indexes of the value and the value itself.

Python3




arr = [2,6,8,4,9,7,52,3,6,2,4,5,6,8,2]
 
min_val = min(arr)    # Finding the minimum value
 
values = {}
# print item with position
for pos,val in enumerate(arr):
    if val==min_val:
        values.update({pos:val}) # pos - Index of the smallest element
                                 # val - The value of the smallest element
 
# get all min values
print(values)


Output

{0: 2, 9: 2, 14: 2}

The time complexity of this code is O(n), where n is the length of the input list arr. The min function takes O(n) time to find the minimum value in the list, and the subsequent loop that finds all occurrences of the minimum value also takes O(n) time.

The space complexity of this code is O(k), where k is the number of occurrences of the minimum value in the list. The values dictionary stores the positions and values of all occurrences of the minimum value, which can be at most n/2 if all elements in the list are the same (in which case the time complexity of finding the minimum value would be O(2n) = O(n)).
 



Similar Reads

Python | Largest, Smallest, Second Largest, Second Smallest in a List
Since, unlike other programming languages, Python does not have arrays, instead, it has list. Using lists is more easy and comfortable to work with in comparison to arrays. Moreover, the vast inbuilt functions of Python, make the task easier. So using these techniques, let's try to find the various ranges of the number in a given list. Examples: In
5 min read
Python program to find the smallest number in a file
Given a text file, write a Python program to find the smallest number in the given text file. Examples: Input: gfg.txt Output: 9 Explanation: Contents of gfg.txt: I live at 624 Hyderabad. My mobile number is 52367. My favourite number is 9. Numbers present in the text file are 9,624,52367 Minimum number is 9. Approach: Create a file object using th
3 min read
Python3 Program to Find the smallest missing number
Given a sorted array of n distinct integers where each integer is in the range from 0 to m-1 and m &gt; n. Find the smallest number that is missing from the array. Examples Input: {0, 1, 2, 6, 9}, n = 5, m = 10 Output: 3 Input: {4, 5, 10, 11}, n = 4, m = 12 Output: 0 Input: {0, 1, 2, 3}, n = 4, m = 5 Output: 4 Input: {0, 1, 2, 3, 4, 5, 6, 7, 10}, n
4 min read
Python program to find the smallest word in a sentence
Given a string S of lowercase English alphabets, the task is to print the smallest word in the given string. Examples: Input: S = “sky is blue”Output: "is"Explanation: Length of “sky” is 3.Length of is “is” 2.Length of “blue” is 4.Therefore, the smallest word is “is”. Input: S = “geeks for geeks”Output: "for" Searching-based Approach: Refer to this
5 min read
Python Program for Smallest K digit number divisible by X
Integers X and K are given. The task is to find smallest K-digit number divisible by X. Examples: Input : X = 83, K = 5 Output : 10043 10040 is the smallest 5 digit number that is multiple of 83. Input : X = 5, K = 2 Output : 10 An efficient solution would be : Compute MIN : smallest K-digit number (1000...K-times) If, MIN % X is 0, ans = MIN else,
1 min read
Python program to create a list of tuples from given list having number and its cube in each tuple
Given a list of numbers of list, write a Python program to create a list of tuples having first element as the number and second element as the cube of the number. Example: Input: list = [1, 2, 3] Output: [(1, 1), (2, 8), (3, 27)] Input: list = [9, 5, 6] Output: [(9, 729), (5, 125), (6, 216)] Method #1 : Using pow() function.We can use list compreh
5 min read
Python Program to Square Each Odd Number in a List using List Comprehension
Given a list, the task is to write a Python Program to square each odd number in a list using list comprehension. Square Each Odd Number in a List using List Comprehension List comprehensions are used for creating new lists from other iterables like tuples, strings, arrays, lists, etc. A list comprehension consists of brackets containing the expres
3 min read
Python Program to Find Largest Number in a List
Given a list of numbers, the task is to write a Python program to find the largest number in given list. Examples: Input : list1 = [10, 20, 4]Output : 20Find Largest Number in a List with Native ExampleSort the list in ascending order and print the last element in the list. C/C++ Code # Python program to find largest # number in a list # list of nu
5 min read
Python program to find second largest number in a list
Given a list of numbers, the task is to write a Python program to find the second largest number in the given list. Examples: Input: list1 = [10, 20, 4]Output: 10 Input: list2 = [70, 11, 20, 4, 100]Output: 70 Method 1: Sorting is an easier but less optimal method. Given below is an O(n) algorithm to do the same. C/C++ Code # Python program to find
7 min read
Python program to find number of m contiguous elements of a List with a given sum
Given a list 'L', a sum 'S' and number of elements to take at a time 'm'. The task is to find how many ways sum s can be found by adding any m contiguous elements. Examples: Input : 1 2 1 3 2 3 2 Output : 2 Input : 1 1 1 1 1 1 3 2 Output : 0 For example 1, we have to find a sum 3 with the help of any 2 contiguous elements of the list. This can be d
4 min read