Python | Ways to find indices of value in list

30 Nov, 2018
Usually, we require to find the index, in which the particular value is located. There are many method to achieve that, using index() etc. But sometimes require to find all the indices of a particular value in case it has multiple occurrences in list.
Let’s discuss certain ways to find indices of value in given list.
Method #1 : Naive Method
We can achieve this task by iterating through the list and check for that value and just append the value index in new list and print that. This is the basic brute force method to achieve this task.
# Python3 code to demonstrate # finding indices of values# using naive method   # initializing list test_list = [1, 3, 4, 3, 6, 7]  # printing initial list print ("Original list : " + str(test_list))  # using naive method# to find indices for 3res_list = []for i in range(0, len(test_list)) :    if test_list[i] == 3 :        res_list.append(i)            # printing resultant list print ("New indices list : " + str(res_list))
Original list : [1, 3, 4, 3, 6, 7]
New indices list : [1, 3]

 Method #2 : Using list comprehension
List comprehension is just the shorthand technique to achieve the brute force task, just uses lesser lines of codes to achieve the task and hence saves programmers time.
# Python3 code to demonstrate # finding indices of values# using list comprehension   # initializing list test_list = [1, 3, 4, 3, 6, 7]  # printing initial list print ("Original list : " + str(test_list))  # using list comprehension# to find indices for 3res_list = [i for i in range(len(test_list)) if test_list[i] == 3]          # printing resultant list print ("New indices list : " + str(res_list))
Original list : [1, 3, 4, 3, 6, 7]
New indices list : [1, 3]

 Method #3 : Using enumerate()Using enumerate() we can achieve the similar task, this is slightly faster technique than above and hence is recommended to be used over the list comprehension technique.
# Python3 code to demonstrate # finding indices of values# using enumerate()  # initializing list test_list = [1, 3, 4, 3, 6, 7]  # printing initial list print ("Original list : " + str(test_list))  # using enumerate()# to find indices for 3res_list = [i for i, value in enumerate(test_list) if value == 3]           # printing resultant list print ("New indices list : " + str(res_list))
Original list : [1, 3, 4, 3, 6, 7]
New indices list : [1, 3]

 Method #4 : Using filter()
This is yet another method that can be employed to achieve this particular task, filter() usually is able to perform the filtering tasks and hence can also be used in this situation to achieve this task.
# Python3 code to demonstrate # finding indices of values# using filter()  # initializing list test_list = [1, 3, 4, 3, 6, 7]  # printing initial list print ("Original list : " + str(test_list))  # using filter()# to find indices for 3res_list = list(filter(lambda x: test_list[x] == 3, range(len(test_list))))           # printing resultant list print ("New indices list : " + str(res_list))
Original list : [1, 3, 4, 3, 6, 7]
New indices list : [1, 3]

Python list-programs
python-list
Python
python-list
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.