2015-11-06 159 views
1

名單的indeces的名單上有以下形式的列表: [True, False, True, True, False, True] 有越來越的indeces這是清單的有效途徑True(即[0, 2, 3, 5])?得到滿足的條件

回答

3

這是最簡單的解決方案

[i for (i, e) in enumerate(mylist) if e] 
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是真的只是增加了一個項目