Wednesday, July 3, 2024
HomeLanguagesPythonPython – Minimum element indices

Python – Minimum element indices

Sometimes, while working with Python lists, we can have a problem in which we intend to find the position of minimum element of list. This task is easy and discussed many times. But sometimes, we can have multiple minimum elements and hence multiple minimum positions. Let’s discuss a shorthand to achieve this task in this case. 

Method : Using min() + enumerate() + list comprehension In this method, the combination of above functions is used to perform this particular task. This is performed in two steps. In 1st, we acquire the minimum element and then access the list using list comprehension and corresponding element using enumerate and extract every element position equal to minimum element processed in step 1. 

Python3




# Python3 code to demonstrate working of
# Minimum element indices
# Using list comprehension + min() + enumerate()
 
# initializing list
test_list = [2, 4, 6, 8, 2, 2]
 
# printing list
print("The original list : " + str(test_list))
 
# Minimum element indices
# Using list comprehension + min() + enumerate()
temp = min(test_list)
res = [i for i, j in enumerate(test_list) if j == temp]
 
# Printing result
print("The Positions of minimum element : " + str(res))


Output : 

The original list : [2, 4, 6, 8, 2, 2]
The Positions of minimum element : [0, 4, 5]

Time Complexity: O(n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(n), where n is the number of elements in the list “test_list”.

Approach  : Using numpy.argmin()

Python3




import numpy as np
 
# initializing list
test_list = [2, 4, 6, 8, 2, 2]
 
# printing list
print("The original list : " + str(test_list))
   
# Minimum element indices
# Using numpy.argmin()
res = np.argwhere(test_list == np.amin(test_list)).flatten()
 
# Printing result
print("The Positions of minimum element : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


output:

The original list : [2, 4, 6, 8, 2, 2]
The Positions of minimum element : [0 4 5]

Time complexity : O(n)
Auxiliary Space : O(1)

 Using a dictionary to keep track of the indices of each element, then finding the minimum element and its indices:

Approach:

  • Initialize an empty dictionary indices_dict.
  • Loop through the indices of my_list using a for loop.
  • For each index i, check if the value my_list[i] is already a key in indices_dict.
  • If my_list[i] is already a key in indices_dict, append i to the value list for that key.
  • If my_list[i] is not a key in indices_dict, add it as a key with its value as a list containing only i.
  • Find the minimum element of my_list using the min() function and store it in min_val.
  • Retrieve the indices of min_val from indices_dict and store them in min_indices.
  • Print min_indices.

Python3




my_list = [2, 4, 6, 8, 2, 2]
 
indices_dict = {}
for i in range(len(my_list)):
    if my_list[i] in indices_dict:
        indices_dict[my_list[i]].append(i)
    else:
        indices_dict[my_list[i]] = [i]
 
min_val = min(my_list)
min_indices = indices_dict[min_val]
 
print(min_indices)


Output

[0, 4, 5]

Time complexity: O(n)
Space complexity: O(n)

Thapelo Manthata
I’m a desktop support specialist transitioning into a SharePoint developer role by day and Software Engineering student by night. My superpowers include customer service, coding, the Microsoft office 365 suite including SharePoint and power platform.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments