Python | Largest, Smallest, Second Largest, Second Smallest in a List

04 Jul, 2022
Since, unlike other programming languages, Python does not have arrays, instead, it has list. Using lists is more easy and comfortable to work with in comparison to arrays. Moreover, the vast inbuilt functions of Python, make the task easier. So using these techniques, let’s try to find the various ranges of the number in a given list. 
Examples:
Input : list = [12, 45, 2, 41, 31, 10, 8, 6, 4]
Output : 
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4
Input : list = [22, 85, 62, 40, 55, 12, 39, 2, 43]
Output :
Largest element is: 85
Smallest element is: 2
Second Largest element is: 62
Second Smallest element is: 12
Approach#1: The approach is simple. Python allows us to sort a list using the list() function. Using this we can find various ranges of numbers in a list, from their position, after being sorted. Like the first position must contain the smallest and the last element must be the greatest. 
Python3
# Python prog to illustrate the following in a listdef find_len(list1):    length = len(list1)    list1.sort()    print("Largest element is:", list1[length-1])    print("Smallest element is:", list1[0])    print("Second Largest element is:", list1[length-2])    print("Second Smallest element is:", list1[1]) # Driver Codelist1=[12, 45, 2, 41, 31, 10, 8, 6, 4]Largest = find_len(list1)
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4
Approach#2: Below is another traditional method to do the following calculation. The algorithm is simple, we take a number and compare it with all other numbers present in the list and get the largest, smallest, second largest, and second smallest element. 
Python3
# Python program to find largest, smallest,# second largest and second smallest in a# list with complexity O(n)def Range(list1):    largest = list1[0]    lowest = list1[0]    largest2 = None    lowest2 = None    for item in list1[1:]:            if item > largest:            largest2 = largest            largest = item        elif largest2 is None or largest2 < item:            largest2 = item        if item < lowest:            lowest2 = lowest            lowest = item        elif lowest2 is None or lowest2 > item:            lowest2 = item                 print("Largest element is:", largest)    print("Smallest element is:", lowest)    print("Second Largest element is:", largest2)    print("Second Smallest element is:", lowest2)  # Driver Codelist1 = [12, 45, 2, 41, 31, 10, 8, 6, 4]Range(list1)
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4
Approach#3: This task can be performed using max and pop methods of list. We can find largest and smallest element of list using max and min method after getting min and max element pop outs the elements from list and again use min and max element to get the second largest and second smallest element. 
Python3
# Python prog for finding largest, smallest# Second largest and second smallestdef find_len( list1 ) :    # max gives maximum element of list    # Pop pull outs index element    Lelmt = max( list1 )    list1.pop( list1.index( Lelmt ) )    sLelmt = max(list1)    # Min gives minimum element of list    # Pop pull outs index element    Selmt = min( list1 )    list1.pop( list1.index( Selmt ) )    sSelmt = min( list1 )    # Printing Min and max of list    print("Largest element is:", Lelmt )    print("Smallest element is:", Selmt )    print("Second Largest element is:", sLelmt )    print("Second Smallest element is:", sSelmt ) # Driver Codelist1=[12, 45, 2, 41, 31, 10, 8, 6, 4]Largest = find_len(list1)
Output:
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4
ashrafiseyedbabak
satyam00so
simmytarika5
Python list-programs
python-list
Python
python-list
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.