পদ্ধতি ১: enumerate()
listA = [True, False, 1, False, 0, True]
res = [i for i, val in enumerate(listA) if val]
print(res) # [0, 2, 5]
নোট: পাইথনে 1 == True এবং 0 == False, তাই ১ ও True দুটোই ধরা পড়ে।
পদ্ধতি ২: itertools.compress
from itertools import compress
listA = [True, False, 1, False, 0, True]
res = list(compress(range(len(listA)), listA))
print(res) # [0, 2, 5]
ব্যাখ্যা
enumerate: সিম্পল এবং পঠনীয়।compress: সিলেক্টর (selector) হিসেবে লিস্ট ব্যবহার করে ইনডেক্স ফিল্টার করে।
আউটপুট
[0, 2, 5]