Find Second Largest Number in Python

When our list contains numerous elements, the idea of identifying the maximum or minimum value may arise, and Python has simplified this process significantly for us.

In this article, we shall how we can use to find the second largest number in Python from a list.

  • Sorting the list and then print the second last number.
  • Removing the maximum element.
  • Finding the maximum element.
  • Traversing the list.

In this section, we will examine each of these examples individually.

Sorting the list and then print the second last number

Consider an example that demonstrates how to arrange a list and subsequently display the second-to-last number using Python.

Example:

Example

#program to find the second largest number of list

# declaring the list

list_val = [20, 30, 40, 25, 10]

# sorting the list

list_val.sort()

#displaying the second last element of the list

print("The second largest element of the list is:", list_val[-2])

Output:

Output

The second largest element of the list is: 30

It's time to go for the explanation part-

  • We have declared the list from which we want to take out the second last element.
  • After this, we used the sort method so that all the elements of our list are arranged in ascending order.
  • Now we make use of negative indexing since the second-largest number will come at the second last position.
  • Removing the maximum element

The alternative approach involves retrieving the second largest value from the list by first eliminating the maximum value. To illustrate this process, we will provide an example that shows how to remove the maximum element using Python.

Example:

Example

#program to find the second largest number of list

# declaring the list

list_val = [20, 30, 40, 25, 10]

# new_list is a set of list1

res_list = set(list_val)

#removing the maximum element

res_list.remove(max(res_list))

#printing the second largest element

print(max(res_list))

Output:

Explanation:

Let us understand what we have done in the above program-

  • We have declared the list from which we want to take out the second last element.
  • After this, we used the set method to take all the unique elements of the list.
  • Now we make use of max to get the maximum value from the list and then remove it.
  • After this, we print the maximum of the resultant list which will give us the second-largest number.
  • Finding the Maximum Element

In the third approach, we will employ a for loop to identify the second largest number within the list. To illustrate this process, let us examine an example that shows how to determine the maximum number in Python.

Example:

Example

# declaring empty list

list_val = []

# user provides the number of elements to be added in the list

num_list = int(input("Enter number of elements in list: "))

for i in range(1, num_list + 1):

	element = int(input("Enter the elements: "))

	list_val.append(element)

# sort the list

list_val.sort()

# print second largest element

print("Second largest element is:", list_val[-2])

Output:

Output

Enter number of elements in list: 5

Enter the elements: 10

Enter the elements: 20

Enter the elements: 30

Enter the elements: 40

Enter the elements: 50

The second largest element is: 40

Explanation:

Let us have a glance at what we have done here-

  • We have declared an empty list in which we will insert the elements.
  • After this, we ask the user to provide us the number of elements we would like to add to our list.
  • After this, we use the sort method so that all the elements of our list are arranged in ascending order.
  • Now we make use of negative indexing since the second-largest number will come at the second last position.
  • Traversing the list

In the final program, we will iterate through the list to identify the largest value and subsequently utilize conditional statements to determine the second largest number within the list. Now, let’s consider an example to illustrate how to navigate the list in Python.

Example:

Example

def calc_largest(arr):

	second_largest = arr[0]

	largest_val = arr[0]

	for i in range(len(arr)):

		if arr[i] > largest_val:

			largest_val = arr[i]

	for i in range(len(arr)):

		if arr[i] > second_largest and arr[i] != largest_val:

			second_largest = arr[i]

	return second_largest

print(calc_largest([20, 30, 40, 25, 10]))

Output:

Explanation:

Let us understand what we have done in the above program-

  • The first step is to create a function that checks the largest number from the list by traversing it.
  • In the next for loop, we traverse the list again for finding the highest number but this time excludes the previous one since here our objective is to find the second largest function.
  • Finally, we pass our list in the function.
  • Conclusion

In this article, we had the opportunity to think creatively and explore innovative methods for determining the second largest number in Python.

Input Required

This code uses input(). Please provide values below: