
Сортировка по нескольким ключам в Python: пошаговая инструкция
За 15 минут разберётесь, как сортировать список словарей и кортежей сразу по двум-трём полям — например, сначала по фамилии, потом по возрасту, где-то по возрастанию, где-то по убыванию.

За 15 минут разберётесь, как сортировать список словарей и кортежей сразу по двум-трём полям — например, сначала по фамилии, потом по возрасту, где-то по возрастанию, где-то по убыванию.

Как отсортировать список словарей сразу по нескольким полям — сначала по одному, потом по другому, да ещё в разных направлениях. Разбираем sorted, key, itemgetter и приём с reverse на конкретных данных.

За 15-20 минут вы поставите Jupyter в изолированное окружение, запустите первый ноутбук и поймёте разницу между .ipynb и обычным .py, чтобы не потерять данные ячеек.

Данные из API и БД почти всегда приходят как список словарей. Разбираем группировку, сортировку, фильтрацию и поиск по такой структуре в Python 3.11+.

Данные из API приходят списком словарей. Разбираем на реальном примере, как их фильтровать, группировать и агрегировать без циклов на пол-экрана — и где привычный подход даёт баги.

Данные из JSON и CSV в Python почти всегда приходят как список словарей. Разбираем, как их читать, фильтровать, группировать и сортировать без циклов на каждый чих.

За 15 минут вы поставите Jupyter в изолированное окружение, откроете первый .ipynb и запустите ячейку с кодом. Разберём, почему падает pip, где браузер не находит ядро и как не сломать системный Python.

За 20 минут вы поставите Jupyter Notebook в отдельное виртуальное окружение, запустите его в браузере и выполните первую ячейку с кодом. Проверено на Python 3.12 и Windows, macOS, Linux.

За полчаса вы установите pytest, напишете первый тест, запустите набор и научитесь читать вывод. К концу будет зелёный прогон и понимание, где искать ошибку, если он красный.

Как читать, создавать и распаковывать архивы стандартными модулями Python без загрузки файла в память целиком и без уязвимости path traversal. Разбираем разницу zipfile и tarfile и когда что выбрать.

Пошагово: скачиваем файл по HTTP частями, показываем прогресс через tqdm, обрабатываем обрыв соединения. Работает на Python 3.9+ и requests 2.x.

Ручная склейка путей через os.path.join и конкатенацию ломается на Windows, теряет расширения и молчит об ошибках. Разбираем, как pathlib решает это и где сам ведёт себя неочевидно.