Python Program to find Second Largest Number in a List

Write a Python Program to find the Second Largest Number in a List using sort, reverse function, and for loop with a practical example.

Python Program to find Second Largest Number in a List using sort

This Python program allows users to enter the length. Next, we used For Loop to add numbers to the list.

The sort function sorts the List elements in ascending order. Next, we are using the Index position to print the Last but one element in a List.

NumList = []
Number = int(input("Please enter the Total Number of List Elements: "))
for i in range(1, Number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    NumList.append(value)

NumList.sort()

print("The Largest Element in this List is : ", NumList[Number - 2])
Python Program to find Second Largest Number in a List 1

Python Program to find Second Largest Number in a List using reverse function

This program sort the elements in Ascending order. Next, we used the reverse function to reverse the list of items. Lastly, we used index position 1 to print the second element in a list.

NumList = []
Number = int(input("Please enter the Total Number of List Elements: "))
for i in range(1, Number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    NumList.append(value)

NumList.sort()
NumList.reverse()
print("The Largest Element in this List is : ", NumList[1])
Please enter the Total Number of List Elements: 5
Please enter the Value of 1 Element : 20
Please enter the Value of 2 Element : 56
Please enter the Value of 3 Element : 78
Please enter the Value of 4 Element : 97
Please enter the Value of 5 Element : 60
The Largest Element in this List is :  78

Python Program to find Second Largest Number in a List using for loop

In this program, we are not using any built-in function, such as the sort or reverse function. For this, we use For Loop.

NumList = []
Number = int(input("Please enter the Total Number of Elements: "))

for i in range(1, Number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    NumList.append(value)

first = second = NumList[0]
for j in range(1, Number):
    if(NumList[j] > first):
        second = first
        first = NumList[j]
    elif(NumList[j] > second and NumList[j] < first):
        second = NumList[j]
        

print("The Largest Element in this List is : ", first)
print("The Second Largest Element in this List is : ", second)
Please enter the Total Number of Elements: 4
Please enter the Value of 1 Element : 55
Please enter the Value of 2 Element : 57
Please enter the Value of 3 Element : 22
Please enter the Value of 4 Element : 3
The Largest Element in this List is :  57
The Second Largest Element in this List is :  55

From the above screenshot, you can observe that the User inserted values are

NumList[4] = {55, 57, 22, 3}
first = second = NumList[0] = 55

First Iteration – for 1 in range(1, 4) – Condition is true
So, it starts executing the If statement inside the loop until the condition fails.
if(NumList[j] > first) inside the for loop is True because (57 > 55)
second = first = 55
first = NumList[1] = 57

Second Iteration: for 2 in range(1, 4) – Condition is true
If (NumList[2] > first) = (22 > 57) – Condition is False. So, it enters into an elif statement
elif(NumList[2] > second and NumList[2] < first)
elif(22 > 55 and 22 < 57) – Condition is False

Third Iteration: for 3 in range(1, 4) – Condition is true
If (3 > 57) – Condition is False
elif(3 > 55 and 3 < 57) – Condition is False

Fourth Iteration: for 4 in range(1, 4) – Condition is False. So, it exits from the loop.

About Suresh

Suresh is the founder of TutorialGateway and a freelance software developer. He specialized in Designing and Developing Windows and Web applications. The experience he gained in Programming and BI integration, and reporting tools translates into this blog. You can find him on Facebook or Twitter.