🧠 Python для аналитиков: list comprehensions и полезные операторы
Или как превратить обычные циклы и проверки в компактный, красивый и быстрый код
Это третья серия модуля 3, и она посвящена двум темам, которые отделяют «пишущего на Python» от «думающего на Python»:
List comprehensions — генераторы списков
Useful operators — полезные встроенные функции, которые чаще всего используют аналитики.
List Comprehensions
List comprehension — это возможность создать новый список на основе другого итерируемого объекта. Синтаксис простой:
[<выражение> for <элемент> in <итерируемое> if <условие>]
Выглядит как цикл for
, но записанный внутри скобок. Зачем это нужно?
✔️ Код становится короче и читабельнее
✔️ Сразу видно трансформацию данных
✔️ Работает быстрее, чем «ручной» цикл
# 1. Квадраты чисел
squares = [x**2 for x in range(5)]
# 2. Фильтрация положительных
nums = [-2,-1,0,1,2]
positives = [n for n in nums if n > 0]
# 3. Условное выражение
labels = ["чет" if x % 2 == 0 else "нечет" for x in range(5)]
А теперь представь вложенные циклы:
# Flatten списка списков
nested = [[1,2],[3,4],[5,6]]
flat = [x for row in nested for x in row]
Обычный цикл на 6–7 строк здесь уместился в одну.
Useful Operators
Python богат встроенными функциями, которые облегчают жизнь. Вот те, которые должен знать каждый аналитик:
min(), max(), sum()
— быстрый способ найти минимум, максимум и сумму в списке.sorted()
иreversed()
— сортировка и разворот, при этом оригинальные данные не меняются.enumerate()
— не нужно вручную писать счётчик в цикле.zip()
— объединяет несколько списков в один «пакет».any()
/all()
— проверяют хотя бы одно / все ли условия выполняются.round(), abs()
— базовые, но крайне полезные при работе с метриками.map(), filter()
— функциональные аналоги comprehension, реже используются, но знать стоит.
Практика (20+ примеров)
В серии мы разобрали десятки практических задач:
✔️ создание словаря {слово → длина}
✔️ генерация матрицы 10x10
✔️ сортировка студентов по баллам
✔️ фильтрация чисел из строки
✔️ поиск пересечения двух списков
✔️ удаление дубликатов через set
✔️ проверка условий через any()
и all()
Фактически это мини-ETL-процесс, только в компактном формате.
Почему это важно для аналитика?
List comprehensions и встроенные операторы — это не просто синтаксис. Это привычка думать питонически.
- Там, где новичок пишет 10 строк, вы напишете 2.
- Там, где кто-то боится вложенных циклов, вы используете flatten.
- Там, где обычно «где-то потеряется счётчик», вы берёте
enumerate()
.
Ваш код становится чище, короче и быстрее. А это ценят на ревью и в боевых проектах.
💾 Скачать серию тут