# 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```