Python中索引运算符的快速方式(lambda i:l [i])

问题描述 投票:1回答:2

给出一个可索引的数据结构,例如列表l,我们如何获得与(lambda i:l [i])等效的最快函数? lambda函数的问题在于它是Python,会降低运行速度。 operators模块中有一些内置运算符,但在这种情况下似乎无法使用它们。

python micro-optimization
2个回答
0
投票

[l.__getitem__]的速度是它的两倍多,并且由于这是对象自己的方法,所以我怀疑您能否击败它。

>>> timeit('f(i)', 'l=[1,2,3]; i=1; f=lambda i:l[i]', number=10**8)
17.013631199999963
>>> timeit('f(i)', 'l=[1,2,3]; i=1; f=l.__getitem__', number=10**8)
7.722098399999936
© www.soinside.com 2019 - 2024. All rights reserved.