Найти в Дзене
Герман Геншин

5 взрывных Python-однострочников, которые моментально прокачают ваши навыки!

Как и многим поклонникам Python, мне нравится возможность делать больше, используя минимум кода. Вот почему принцип «зачем писать десять строк, если можно всё решить одной?» здесь так популярен. Давайте посмотрим, как привычные задачи можно решить элегантно и эффектно с помощью питоновских однострочников. Начну с одного из самых узнаваемых приёмов Python — списковых выражений. Проще говоря, они позволяют создавать новые списки на основе существующих — прямо в одной компактной конструкции, с возможностью сразу отфильтровать элементы. Вот, например, есть список чисел, а нужны квадраты только чётных. По старинке я бы поступил так: Работает, всё понятно, но согласитесь, многословно для такой простой задачи. А теперь — волшебство списковых выражений: Это не просто модный трюк: списковые выражения реально делают код читабельнее (особенно когда к ним привыкаешь), а Python обычно выполняет их чуть быстрее, чем обычный цикл с append. Добро пожаловать в мир Python! Статистика — одна из самых ча
Оглавление

Как и многим поклонникам Python, мне нравится возможность делать больше, используя минимум кода. Вот почему принцип «зачем писать десять строк, если можно всё решить одной?» здесь так популярен. Давайте посмотрим, как привычные задачи можно решить элегантно и эффектно с помощью питоновских однострочников.

Списковые выражения

Начну с одного из самых узнаваемых приёмов Python — списковых выражений. Проще говоря, они позволяют создавать новые списки на основе существующих — прямо в одной компактной конструкции, с возможностью сразу отфильтровать элементы.

Вот, например, есть список чисел, а нужны квадраты только чётных. По старинке я бы поступил так:

-2

Работает, всё понятно, но согласитесь, многословно для такой простой задачи.

А теперь — волшебство списковых выражений:

-3

Это не просто модный трюк: списковые выражения реально делают код читабельнее (особенно когда к ним привыкаешь), а Python обычно выполняет их чуть быстрее, чем обычный цикл с append.

-4

Освойте Python с нуля за 1 час: пошаговая схема из 13 пунктов

Добро пожаловать в мир Python!

Подсчёт элементов

Статистика — одна из самых частых задач: сколько раз встречается символ, слово или событие? Но даже опытные разработчики часто пишут для этого однообразные циклы.

Например, надо узнать, сколько раз каждая буква встречается в строке. Первый, самый очевидный вариант:

-5

Всё работает и понятно. Можно сделать «питонистее» через dict.get:

Но вот — настоящий магический однострочник:

-6

Вуаля! Больше никаких циклов или ручного подсчёта.

Counter — это часть стандартной библиотеки Python, модуль collections. Фактически это специальный словарь, заточенный под подсчёт количества повторяющихся объектов.

Плюс — вы меньше рискуете ошибиться в мелочах: не надо думать о начальных значениях или вдруг забыть про ключ. Counter избавляет от лишней рутины и от потенциальных багов.

Молниеносная смена значений переменных

Поменять местами значения двух переменных — задача-простушка. Но даже такую банальность в Python можно решить ультраэлегантно.

Вот оно, классика жанра, способ с временной переменной:

Этот вариант работает даже в самых старых языках, но требует лишнюю переменную. Есть ещё арифметические трюки...

А вот как это делается на Python — максимально коротко:

Никаких «промежуточных» переменных, никаких ухищрений. Всё благодаря «множественному присваиванию» или «распаковке кортежей»: Python сначала строит кортеж справа, а потом одновременно распределяет значения слева. Информация никуда не теряется!

Быстрое разворачивание списка

Бывает, нужно перевернуть список наоборот — например, для алгоритмов, анализа, или просто красивого вывода. Многие делают это вручную: перебирают индексы, собирают новый список...

Есть метод reverse() — он меняет исходный список напрямую. Но если нужен идеальный однострочник и сохранение оригинала — используйте вот так:

Гениально и просто! Срез arr[start:stop:step] позволяет не просто выбирать элементы, но и развернуть список за одну строку. Шаг -1 — двигаемся с конца к началу. При этом создаётся новый список, а исходный остаётся без изменений.

Молниеносное создание ряда Фибоначчи

И напоследок — классика: генерация чисел Фибоначчи. Обычно для этого нужно несколько строк и переменных, чтобы отслеживать предыдущее состояние. Смотрите, как всё можно упростить до одной строки!

Подпишитесь — не пропускайте свежие находки и полезные подборки

Чаще всего используют цикл с распаковкой кортежей — и в итоге набирается строк восемь минимум. Но можно и компактнее:

Да, Python на такое способен. Правда, читать этот однострочник — то ещё испытание! Такой пример хорош для демонстрации гибкости языка, но в реальных проектах его лучше не использовать: тут и lambda-функции, и itertools, и хитрое управление состоянием — если что-то сломается, разбираться сложно и больно.

Главный вывод? На Python можно уместить в одну строку даже самые сложные штуки — если сильно захотеть. Но это не значит, что краткость всегда лучше. Хороший код — это не только скорость написания, но и удобство поддержки и ясность для других. Однострочники — всего лишь инструмент. Используйте их творчески, но с умом!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в: