How to find the second smallest elements in an array (list) in Python

2 Answers

0 votes
import sys 
  
def getTheSecondSmallest(arr): 
    size = len(arr) 

    first = second = sys.maxsize 
    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 == sys.maxsize): 
        return -1
    else: 
        return second
  
arr1 = [34, 3, 8, 2, 9, 4, 6] 
print(getTheSecondSmallest(arr1)) 

arr2 = [1, 1, 2, 1, 1] 
print(getTheSecondSmallest(arr2)) 

arr3 = [5, 5, 5, 5, 5, 5, 5] 
print(getTheSecondSmallest(arr3)) 


    
'''
run:
    
3
2
-1
           
'''

 



answered May 31, 2020 by avibootz
edited Dec 17, 2021 by avibootz
0 votes
import sys 
   
def getTheSecondSmallest(lst): 
    lst.sort()
     
    return lst[1]
   
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:
     
3
1
5
            
'''

 



answered Aug 19, 2021 by avibootz

Related questions

1 answer 135 views
1 answer 106 views
1 answer 136 views
1 answer 123 views
1 answer 145 views
2 answers 180 views
...