Python program to find the second largest number in a list


In this article, we will learn about the solution to the problem statement given below.

Problem statement − We are given a list, we need to display the second largest number in a list.

There are three approaches to solve the problem−

Approach 1 − We use the set() function & remove() function

Example

 Live Demo

list1 = [11,22,1,2,5,67,21,32]
# to get unique elements
new_list = set(list1)
# removing the largest element from list1
new_list.remove(max(new_list))
# now computing the max element by built-in method?
print(max(new_list))

Output

32

Approach 2 − We use sort() method and negative indexes

Example

 Live Demo

list1 = [11,22,1,2,5,67,21,32]
# using built-in sort method
list1.sort()
# second last element
print("Second largest element in the list is:", list1[-2])

Output

Second largest element in the list is: 32

Approach 3 − We use the brute-force method to get second maximum element

Example

 Live Demo

list1 = [11,22,1,2,5,67,21,32]
#assuming max_ is equal to maximum of element at 0th and 1st index
and secondmax is the minimum among them
max_=max(list1[0],list1[1])
secondmax=min(list1[0],list1[1])
for i in range(2,len(list1)):
   # if found element is greater than max_
   if list1[i]>max_:
      secondmax=max_
      max_=list1[i]
   #if found element is greator than secondmax
   else:
      if list1[i]>secondmax:
         secondmax=list1[i]
print("Second highest number is the list is : ",str(secondmax))

Output

Second highest number is the list is : 32

Conclusion

In this article, we have learned about how we can find the second largest element in a list.

Updated on: 11-Jul-2020

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements