获取满足条件的列表的indeces列表

时间:2015-11-06 21:00:05

标签: python list

我有一份表格清单: [True, False, True, True, False, True] 是否有一种有效的方法来获取True(即[0, 2, 3, 5])的indeces列表?

2 个答案:

答案 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为真时添加一个项