When a Python list contains values like true or false and 0 or 1 it is called binary list. In this article we will take a binary list and find out the index of the positions where the list element is true.
With enumerate
The enumerate function extracts all the elements form the list. We apply a in condition to check of the extracted value is true or not.
Example
listA = [True, False, 1, False, 0, True]
# printing original list
print("The original list is :\n ",listA)
# using enumerate()
res = [i for i, val in enumerate(listA) if val]
# printing result
print("The indices having True values:\n ",res)Output
Running the above code gives us the following result −
The original list is : [True, False, 1, False, 0, True] The indices having True values: [0, 2, 5]
With compress
Using compress we iterate through each of the element in the list. This brings out only the elements whose value is true.
Example
from itertools import compress
listA = [True, False, 1, False, 0, True]
# printing original list
print("The original list is :\n ",listA)
# using compress()
res = list(compress(range(len(listA)), listA))
# printing result
print("The indices having True values:\n ",res)Output
Running the above code gives us the following result −
The original list is : [True, False, 1, False, 0, True] The indices having True values: [0, 2, 5]