TGViewer
Python академия Python академия @pythonofff · 7.14K subscribers
Post #3502 1.19K
⚡ Магия одной строки: List Comprehension

Вы всё еще пишете циклы для заполнения списков вот так?


squares = []
for x in range(10):
squares.append(x ** 2)



Это работает, но это "старая школа". В Python есть способ сделать это элегантнее, быстрее и понятнее - Списковые включения.

Как это выглядит:
[выражение for элемент in список]

Тот же самый код выше превращается в:


squares = [x ** 2 for x in range(10)]



🚀 Почему это круто?

1. Лаконичность: Меньше кода меньше багов.
2. Скорость: Это работает быстрее обычного цикла for, потому что метод .append() не вызывается на каждой итерации (оптимизация на уровне C).

Уровень PRO: Добавляем условия
Внутри можно использовать if, чтобы фильтровать данные на лету.

Задача: Оставить только четные числа и умножить их на 10.


numbers = [1, 2, 3, 4, 5, 6]

# Читается как английское предложение:
# "x умножить на 10 для каждого x в numbers, если x четный"
result = [x * 10 for x in numbers if x % 2 == 0]

print(result)
# [20, 40, 60]



💡 Совет: Не увлекайтесь! Если ваше выражение не влезает в одну строку или становится слишком сложным (например, вложенные циклы), лучше вернитесь к старому доброму for. Читаемость важнее понтов!

Часто используете эту конструкцию? Ставьте 🔥!

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
  • 👍 6
  • 🔥 3
More from @pythonofff
  1. Sep 24, 2026Анонимные функции Часто функции нужны только один раз, причем короткие. И избыточно создав…
  2. Sep 23, 2026Бесконечные списки Мы уже рассказывали про важность копирования списков. Но именно из-за т…
  3. Sep 21, 2026Заглушки Для создания пустых функций и классов есть сразу два способа соответствующих прав…
  4. Sep 20, 2026Параметры функции *args, **kwargs Думаю, многие хоть раз видели такую запись, сейчас мы уз…
  5. Sep 18, 2026В одну строчку Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, ма…
  6. Sep 16, 2026Распаковка Неудобно каждый раз для вывода объединять строки через join() или тем более как…
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 →