Python - 与条件匹配的另一个列表的元素索引列表

dim*_*ris 2 python indexing list sublist conditional-statements

这似乎相当容易,但我有点困在这一个.
我有一个逻辑值列表,例如:

a=[True, False, True, True, False, False, True, True, True]
Run Code Online (Sandbox Code Playgroud)

我想构建另一个包含(在子列表中)'a'的索引的列表,这些索引是'True',连续的索引放在同一个子列表中.所以,对于上面的例子,答案是:

[[0], [2,3], [6,7,8]] 
Run Code Online (Sandbox Code Playgroud)

sch*_*ggl 6

使用itertools.groupbyenumerate,可以使用单线程:

from itertools import groupby
[[i for i, _ in g] for k, g in groupby(enumerate(a), key=lambda x: x[1]) if k]
Run Code Online (Sandbox Code Playgroud)