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