Search code examples
listpythonlist-comprehension

How do I get a list of indices of non zero elements in a list?


I have a list that will always contain only ones and zeroes. I need to get a list of the non-zero indices of the list:

a = [0, 1, 0, 1, 0, 0, 0, 0]
b = []
for i in range(len(a)):
    if a[i] == 1:  b.append(i)
print b

What would be the 'pythonic' way of achieving this ?


Solution

  • [i for i, e in enumerate(a) if e != 0]