I want to search through a python list and print out the index of each occurrence.
a = ['t','e','s','t']
a.index('t')
The above code only gives me the first occurrence's index.
I want to search through a python list and print out the index of each occurrence.
a = ['t','e','s','t']
a.index('t')
The above code only gives me the first occurrence's index.
 
    
    You can use a list comprehension with enumerate:
a = ['t','e','s','t']
indices = [i for i, x in enumerate(a) if x == 't']
Inside of the list comprehension, i is the current index and x is the value at that index.
 
    
    With enumerate inside list comprehension for t,
>>> list1 = ['t','e','s','t']
>>> all_index = [i for i, j in enumerate(list1) if j == 't']
>>> all_index
Output:
[0, 3]
With loop for all element,
list1 = ['t','e','s','t']
result = {}
for e in list1:
    result[e] = [i for i, j in enumerate(list1) if j == e]
print(result)
Output:
 {'s': [2], 'e': [1], 't': [0, 3]}
 
    
    Yes you can do it with enumerate
[x[0] for x in enumerate(a) if x[1]=='t']
Out[267]: [0, 3]
 
    
    def get_indices(my_list, item):
    result = []
    for i in range(len(my_list)):
        if my_list[i] == item:
            result.append(i)
    return result
Then try it out...
>>> get_indices(a, "t")
[0, 3]
