我有一份表格清单:
[True, False, True, True, False, True]
是否有一种有效的方法来获取True
(即[0, 2, 3, 5]
)的indeces列表?
答案 0 :(得分:3)
这是最简单的解决方案
[i for (i, e) in enumerate(mylist) if e]
答案 1 :(得分:1)
>>> l = [True, False, True, True, False, True]
>>> l2 = [i for i,x in enumerate(l) if x]
>>> l2
[0, 2, 3, 5]
enumerate
所做的是创建一个迭代器,产生一个像indexofitem,item
这样的元组,然后列表推导只会在x
为真时添加一个项