How to find the second largest elements in a list with Python

2 Answers

0 votes
def getTheSecondlargest(arr): 
    size = len(arr) 
   
    first = second = float('-inf')
    for i in range(0, size): 
        if arr[i] > first: 
            second = first 
            first = arr[i] 
        elif (arr[i] > second and arr[i] != first): 
            second = arr[i]; 
     
    if (second == float('-inf')): 
        return -1
    else: 
        return second
     
arr1 = [34, 3, 8, 2, 9, 4, 6] 
print(getTheSecondlargest(arr1)) 
   
arr2 = [1, 1, 2, 1, 1] 
print(getTheSecondlargest(arr2)) 
   
arr3 = [5, 5, 5, 5, 5, 5, 5] 
print(getTheSecondlargest(arr3)) 
   
   
   
   
       
'''
run:
       
9
1
-1
              
'''

 



answered Aug 19, 2021 by avibootz
edited Aug 19, 2021 by avibootz
0 votes
def getTheSecondSmallest(lst): 
    lst.sort()
     
    return lst[-2]
    
lst1 = [34, 3, 8, 2, 9, 4, 6] 
print(getTheSecondSmallest(lst1)) 
  
lst2 = [1, 1, 2, 1, 1] 
print(getTheSecondSmallest(lst2)) 
  
lst3 = [5, 5, 5, 5, 5, 5, 5] 
print(getTheSecondSmallest(lst3)) 
  
  
  
  
      
'''
run:
      
9
1
5
             
'''

 



answered Aug 19, 2021 by avibootz
edited Aug 19, 2021 by avibootz

Related questions

1 answer 106 views
1 answer 143 views
1 answer 210 views
3 answers 276 views
1 answer 210 views
...