python在给定索引的列表中查找项

python在给定索引的列表中查找项,python,list,Python,List,是否有其他更快的方法在索引位置查找项目 items = ['aaa','sss','ddd','fff','gggg','hhhh'] indices = [1,3,4] My way: [items[i] for i in indices] 如果您反复使用相同的索引,那么使用操作符.itemgetter可能会更好: getter = itemgetter(1,3,4) desired = getter(items) 根据我的简单基准测试,itemgetter大约快2.5倍(但我没有计算

是否有其他更快的方法在索引位置查找项目

items = ['aaa','sss','ddd','fff','gggg','hhhh']
indices = [1,3,4]

My way: 
[items[i] for i in indices]

如果您反复使用相同的索引,那么使用
操作符.itemgetter可能会更好:

getter = itemgetter(1,3,4)
desired = getter(items)
根据我的简单基准测试,
itemgetter
大约快2.5倍(但我没有计算实际构建
getter
函数所需的时间)


如果您包括创建
getter
所需的时间,那么@J.F.Sebastian--很高兴知道,感谢您在那里进行计时--尽管我希望重复检索的是相同的项目…谢谢。时间计算非常有用。它是应用程序中的瓶颈吗?典型的
项目
索引
看起来如何?
>>> items = ['aaa','sss','ddd','fff','gggg','hhhh']
>>> indices = [1,3,4]
>>> from operator import itemgetter
>>> import timeit
>>> getter = itemgetter(*indices)
>>> def list_comp(items=items,indices=indices):
...     return [items[i] for i in indices]
... 
>>> timeit.timeit('getter(items)','from __main__ import getter,items')
0.2926821708679199
>>> timeit.timeit('list_comp()','from __main__ import list_comp')
0.7736802101135254
>>> getter(items)
('sss', 'fff', 'gggg')
>>> list_comp()
['sss', 'fff', 'gggg']