Быстрый способ индексации оператора в Python (лямбда i: l [i]) - PullRequest
2 голосов
/ 14 января 2020

При наличии индексируемой структуры данных, такой как список l, как мы можем получить самую быструю функцию, эквивалентную lambda i: l[i]? Проблема лямбда-функции в том, что она Python и замедляет работу. В модуле operator есть несколько встроенных операторов, но, похоже, ни один из них не может быть использован в этой ситуации.

1 Ответ

1 голос
/ 14 января 2020

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...