使用
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)