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]