TGViewer
Хитрый Питон Хитрый Питон @tricky_python · 3.47K subscribers
Post #113 2.22K
List comprehensions (выражения типа [x for x in iterable]) в питоне обычно сложновато даются новичкам. Но стоит один раз разобраться с синтаксисом, как понимаешь, насколько это удобный инструмент. Более того, они быстрее чем .append() в список в цикле.

И вот в новом PEP 709 предлагают оптимизировать их работу. Сейчас при переводе list/dict/set comprehension в байткод происходит создание вложенной функции и ее исполнение. Авторы PEP предлагают не создавать эту дополнительную вложенную функцию, а сразу писать в байткоде ее содержимое (inline). Это должно быть безопасно, так как в случае list comprehention мы не можем стандартными средствами в процессе его выполнения как-то повлиять на переменные внутри.

У этого подхода есть большой плюс - ускорение исполнения подобных выражений на 11% на тестах. Из минусов - в трейсбеках больше не будет пункта listcomp и при трейсинге/профилировании не будет видны вход в comprehension и выход из него. На мой взгляд плюсы заметно перевешивают минусы, надеюсь этот PEP примут и внедрят в одном из ближайших релизов.

Ссылка https://peps.python.org/pep-0709/
Python Enhancement Proposals (PEPs) PEP 709 – Inlined comprehensions | peps.python.org Comprehensions are currently compiled as nested functions, which provides isolation of the comprehension’s iteration variable, but is inefficient at runtime. This PEP proposes to inline list, dictionary, and set comprehensions into the code where they a...
  • 👍 28
More from @tricky_python
  1. Sep 16, 2026Друзья, у нас важное объявление! Некоторые из вас помнят наши курсы Learn Python - когда-т…
  2. Sep 7, 2026В документации Python появилась отдельная страница со сложностью операций над встроенными…
  3. Sep 3, 2026В эту пятницу в 14:00 (по мск) обсудим новости августа в прямом эфире Moscow Python Podcas…
  4. Sep 2, 2026Казалось бы, что может быть проще, чем разбить текст на строки? Может быть, кто-то еще пом…
  5. Aug 31, 2026Пока я был в отпуске и путешествовал, вышел перевод документации Python на русский. Звучит…
  6. Aug 20, 2026Есть такой язык - Mojo: • синтаксически он близок к python • дает возможность вызывать и и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →