'Extract indices of certain values from a list in python

Suppose, I have a list [0.5,1,1.5,2,2.5,3,3.5,4,4.5], now I would like to extract the indices of a list [1.5,2.5,3.5,4.5], which is a subset of that list.



Solution 1:[1]

You can use the inbuilt function <list>.index to find the index of each element(of second list) in the first list.

Having that learnt, you can use list comprehension to achieve what you want:

>>> list1 = [0.5,1,1.5,2,2.5,3,3.5,4,4.5]
>>> list2 = [1.5,2.5,3.5,4.5]
>>> [list1.index(elem) for elem in list2]
[2, 4, 6, 8]

Solution 2:[2]

One other option is to use enumerate function. See the following answer:

a = [0.5,1,1.5,2,2.5,3,3.5,4,4.5]
b = [1.5,2.5,3.5,4.5]
indexes = []

for id, i in enumerate(a):
    if i in b:
        indexes.append(id)

print(indexes)

The output is going to be [2, 4, 6, 8].

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 anilkumarggk
Solution 2 Baris Ozensel