Python program to find second largest number in a list

Created with Sketch.

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

Leave a Reply

Your email address will not be published. Required fields are marked *