TGViewer
Moscow Python Moscow Python @moscow_python · 3.07K subscribers
Post #536 437

Forwarded from Хитрый Питон

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...
  • 👍 8
  • ❤ 1
More from @moscow_python
  1. Sep 28, 2026Post #1072
  2. Sep 28, 2026Еще анонсы докладов на бесплатную конференцию 17 октября в НН Регистрация: https://itgorky…
  3. Sep 24, 2026По рекомендациям умной машины составили несколько плейлистов с видео недавних докладов и п…
  4. Sep 23, 2026Вот в таком уютном зале мы планируем проводить первые круглые столы Moscow Python Pro. По…
  5. Sep 22, 2026Скоро начинаем! Трансляция - на https://moscowpython.ru
  6. Sep 22, 2026Напоминаем, что сегодня вечером состоится наш митап в Центральном университете. Зарегистри…
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 →