Python program to find the 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 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.
# Python program to find second largest # number in a list # list of numbers - length of list should be at least 2 list1 = [ 10 , 20 , 4 , 45 , 99 ] max = max (list1[ 0 ],list1[ 1 ]) secondmax = min (list1[ 0 ],list1[ 1 ]) for i in range ( 2 , len (list1)): if list1[i]> max : secondmax = max max = list1[i] else : if list1[i]>secondmax: secondmax = list1[i] print ( "Second highest number is : " , str (secondmax)) |
Method 2 : Sort the list in ascending order and print the second last element in the list.
# Python program to find largest # number in a list # list of numbers list1 = [ 10 , 20 , 4 , 45 , 99 ] # sorting the list list1.sort() # printing the second last element print ( "Second largest element is:" , list1[ - 2 ]) |
Output:
Largest element is: 45
Method 3 : By removing the max element from list
# Python program to find second largest # number in a list # list of numbers list1 = [ 10 , 20 , 4 , 45 , 99 ] # new_list is a set of list1 new_list = set (list1) # removing the largest element from temp list new_list.remove( max (new_list)) # elements in original list are not changed # print(list1) print ( max (new_list)) |
Output:
Largest element is: 45
Method 3 : Find max list element on inputs provided by user
# Python program to find second largest # 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) ''' # sort the list list1.sort() # print second maximum element print("Second largest element is:", list1[-2]) ''' # print second maximum element using sorted() method print ( "Second largest element is:" , sorted (list1)[ - 2 ]) |
Output:
Enter number of elements in list: 4 Enter elements: 12 Enter elements: 19 Enter elements: 1 Enter elements: 99 Largest element is: 19