# Python program to get the indices of each element of one list in another list

• Last Updated : 01 Oct, 2020

Given 2 lists, get all the indices of all occurrence of each element in list2 from list1.

Input : test_list = [4, 5, 3, 7, 8, 3, 2, 4, 3, 5, 8, 3], get_list = [7, 5, 4]
Output : [, [1, 9], [0, 7]]
Explanation : 5 is present at 1st and 9th index.

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

Input : test_list = [4, 5, 3, 7, 8, 3, 2, 4, 3, 5, 8, 3], get_list = [7, 5, 8]
Output : [, [1, 9], [4, 10]]
Explanation : 8 is present at 4th and 10th index.

Method #1 : Using loop + setdefault()

In this, we perform the task of getting all the elements list grouped with their indices, and in 2nd run, get only the elements that are present in the other list.

## Python3

 `# Python3 code to demonstrate working of ``# Multiple Indices from list elements``# Using setdefault() + loop`` ` `# initializing list``test_list ``=` `[``4``, ``5``, ``3``, ``7``, ``8``, ``3``, ``2``, ``4``, ``3``, ``5``, ``8``, ``3``]`` ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# initializing get_list ``get_list ``=` `[``7``, ``5``, ``3``]`` ` `# getting all elements indices``ele_indices ``=` `dict``()  ``for` `idx, val ``in` `enumerate``(test_list):``    ``ele_indices.setdefault(val, []).append(idx)`` ` `# filtering only required elements``res ``=` `[ele_indices.get(idx, [``None``]) ``for` `idx ``in` `get_list]   `` ` `# printing result ``print``(``"Filtered Indices of elements in list 1  : "` `+` `str``(res))`
Output
```The original list is : [4, 5, 3, 7, 8, 3, 2, 4, 3, 5, 8, 3]
Filtered Indices of elements in list 1  : [, [1, 9], [2, 5, 8, 11]]

```

Method #2 : Using list comprehension + enumerate()

In this we use a nested loop, to get all the indices, and then filter in case of presence in another list.

## Python3

 `# Python3 code to demonstrate working of ``# Multiple Indices from list elements``# Using list comprehension + enumerate()`` ` `# initializing list``test_list ``=` `[``4``, ``5``, ``3``, ``7``, ``8``, ``3``, ``2``, ``4``, ``3``, ``5``, ``8``, ``3``]`` ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# initializing get_list ``get_list ``=` `[``7``, ``5``, ``3``]`` ` `# enumerate() used to get idx, val simultaneously``res ``=` `[([idx ``for` `idx, val ``in` `enumerate``(test_list) ``if` `val ``=``=` `sub] ``if` `sub ``in` `test_list ``else` `[``None``])``      ``for` `sub ``in` `get_list]`` ` `# printing result ``print``(``"Indices of elements in list 1  : "` `+` `str``(res))`
Output
```The original list is : [4, 5, 3, 7, 8, 3, 2, 4, 3, 5, 8, 3]
Indices of elements in list 1  : [, [1, 9], [2, 5, 8, 11]]

```

My Personal Notes arrow_drop_up