获取布尔列表的truthy元素的索引作为列表/元组

MLi*_*ter 5 python json list

给定一个布尔列表,例如[True, False, False, True, False, True],获取包含原始列表中Truthy元素的索引(从1开始,而不是零索引)的列表/元组的最快方法是什么?所以对于上面的列表,它应该返回[1, 4, 6](1, 4, 6).

我正在使用这样的发电机:

def get_truthy_ones(self, bool_list):
    return (idx + 1 for idx, value in enumerate(bool_list) if value)
Run Code Online (Sandbox Code Playgroud)

但是,当我想在JSON对象中编码结果时,这会产生问题,因为JSON不编码生成器.

Lev*_*sky 12

[i for i, elem in enumerate(bool_list, 1) if elem]
Run Code Online (Sandbox Code Playgroud)