August 25

🧠 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()

А в конце — кейс с CSV:

  • читаем данные о продажах,
  • оставляем последний месяц,
  • агрегируем суммы,
  • выводим топ-5 товаров.

Фактически это мини-ETL-процесс, только в компактном формате.

Почему это важно для аналитика?

List comprehensions и встроенные операторы — это не просто синтаксис. Это привычка думать питонически.

  • Там, где новичок пишет 10 строк, вы напишете 2.
  • Там, где кто-то боится вложенных циклов, вы используете flatten.
  • Там, где обычно «где-то потеряется счётчик», вы берёте enumerate().

Ваш код становится чище, короче и быстрее. А это ценят на ревью и в боевых проектах.

💾 Скачать серию тут

📣 Поддержи реакцией — это помогает делать новые материалы

👉 Senior Data Analyst | #python #модуль_03 #серия_03