Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Get Indices of True Values ใน Binary List Python: หาตำแหน่งค่า True

ได้ Binary List (มีค่า True/False หรือ 1/0) ต้องการดัชนีของทุกตำแหน่งที่เป็น True

วิธี 1: ใช้ enumerate กับ List Comprehension

listA = [True, False, 1, False, 0, True]
res = [i for i, val in enumerate(listA) if val]
print(res)  # [0, 2, 5]

วิธี 2: ใช้ 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]

สรุป

compress(selector, data) เลือกข้อมูลจาก data เมื่อ selector เป็น True ใช้ range(len(listA)) เป็น data เพื่อได้ดัชนี