在布尔列表中获取True值的索引

在布尔列表中获取True值的索引,第1张

布尔列表中获取True值的索引

使用

enumerate
list.index
返回找到的第一个匹配项的索引。

>>> t = [False, False, False, False, True, True, False, True, False, False, False, False, False, False, False, False]>>> [i for i, x in enumerate(t) if x][4, 5, 7]

对于庞大的列表,最好使用

itertools.compress

>>> from itertools import compress>>> list(compress(xrange(len(t)), t))[4, 5, 7]>>> t = t*1000>>> %timeit [i for i, x in enumerate(t) if x]100 loops, best of 3: 2.55 ms per loop>>> %timeit list(compress(xrange(len(t)), t))1000 loops, best of 3: 696 µs per loop


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存