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

Fast Way of Indexing Operator in Python (lambda i: l[i])

给定一个可索引的数据结构,例如列表 l,我们怎样才能得到等价于 lambda i: l[i] 的最快函数? lambda 函数的问题在于它是 Python 并且会减慢速度。 operator 模块中有一些内置运算符,但在这种情况下似乎可以使用其中的 none 个。

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