Python tricks | Хитрости Питона
5.88K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Использование функции any() для проверки наличия элементов, удовлетворяющих условию

Функция any() позволяет быстро проверить, есть ли хотя бы один элемент в последовательности, который удовлетворяет заданному условию. Это удобно, когда нужно проверить наличие элемента без необходимости писать цикл.

Функция any() — это удобный инструмент для краткой и эффективной проверки условий в коллекциях, упрощая код и улучшая читаемость.

🔗 Python tricks
Использование defaultdict для работы со словарями с автоматическим созданием значений

defaultdict из модуля collections позволяет автоматически создавать значения для новых ключей в словаре. Это избавляет от необходимости проверки наличия ключа перед его использованием.

Использование defaultdict значительно упрощает работу с ключами и значениями в словарях, избавляя от ручного управления отсутствующими ключами.

🔗 Python tricks
Использование zip() для параллельной обработки нескольких списков

Функция zip() в Python позволяет объединять несколько списков (или других итерируемых объектов) в один, создавая кортежи из элементов с одинаковыми индексами. Это удобно, когда нужно обрабатывать несколько последовательностей одновременно.

Использование zip() делает работу с несколькими последовательностями более лаконичной и эффективной, позволяя легко создавать структуры данных и упрощать код.

🔗 Python tricks
Использование f-строк для форматирования строк

С помощью f-строк (форматированных строковых литералов), доступных в Python 3.6 и выше, вы можете легко и читабельно вставлять значения переменных в строки. Это значительно упрощает создание сложных строк и повышает читаемость кода.

Использование f-строк позволяет значительно упростить процесс форматирования строк, делая код более чистым и понятным.

🔗 Python tricks
Использование itertools.product для генерации декартова произведения

Модуль itertools предоставляет полезные функции для работы с итераторами. Функция itertools.product() позволяет генерировать декартово произведение нескольких последовательностей, что может быть полезно, например, при создании всех возможных комбинаций элементов из нескольких списков.

Использование itertools.product упрощает задачу генерации всех возможных комбинаций, делая код более чистым и эффективным.

🔗 Python tricks
Использование defaultdict из модуля collections для удобного подсчета элементов

Если вам нужно подсчитать количество вхождений элементов в списке или другой итерируемой структуре, использование defaultdict из модуля collections может значительно упростить задачу. Вместо того чтобы проверять, существует ли ключ в словаре, defaultdict автоматически создаст значение по умолчанию для отсутствующих ключей.

Использование defaultdict позволяет быстро и удобно подсчитывать вхождения элементов, избавляя от лишних проверок и делая код более лаконичным.

🔗 Python tricks
Использование with для работы с файлами

Использование конструкции with при работе с файлами в Python позволяет автоматически управлять ресурсами, такими как открытие и закрытие файлов. Это помогает избежать утечек памяти и ошибок, связанных с тем, что файл не был закрыт после использования.

Использование конструкции with упрощает работу с файлами, делает код более надежным и чистым, освобождая вас от необходимости вручную закрывать файлы.

🔗 Python tricks
Использование f-строк для форматирования строк

В Python есть удобный способ форматирования строк, называемый f-строками (f-strings). Это позволяет вставлять значения переменных непосредственно в строку, делая код более читаемым и лаконичным.

Использование f-строк позволяет значительно упростить процесс форматирования строк и сделать ваш код более чистым и понятным.

🔗 Python tricks
Использование функции any() и all() для проверки условий

Функции any() и all() в Python позволяют легко проверять условия для элементов в коллекциях, таких как списки или кортежи. Это делает код более читаемым и компактным.

Использование any() и all() значительно упрощает проверку условий и делает код более читаемым и эффективным.

🔗 Python tricks
Использование collections.defaultdict для упрощения работы со словарями

Модуль collections в Python предоставляет специальный тип словаря, называемый defaultdict. Он позволяет автоматически создавать значения для новых ключей, что значительно упрощает работу с словарями, особенно когда нужно подсчитать количество элементов или сгруппировать данные.

Использование defaultdict позволяет значительно упростить работу с данными и сделать код более эффективным и читаемым.

🔗 Python tricks
Plumbum

Plumbumэто библиотека, предназначенная для упрощения работы с командной строкой и вызова внешних программ.
Она упрощает автоматизацию задач, которые требуют вызова командной строки из\ кода. Это может быть запуск скриптов, утилит, вызов программ для обработки данных и т. д.

Основные возможности библиотеки:
— Удобный синтаксис для запуска команд и программ из Python кода. Позволяет вызывать команды командной строки так же просто, как обычные функции.
— Автоматическое формирование командной строки. Можно передавать аргументы и параметры в виде обычных переменных, Plumbum сам сформирует командную строку.
— Перенаправление ввода/вывода. Поддержка стандартных операторов Unix для работы с потоками данных.
— Проверка кодов возврата и обработка ошибок.
— Локальное или удаленное выполнение. Возможность запускать команды как локально, так и по SSH на удаленных хостах.

🔗 Python tricks
Логические all и any

Встроенные функции all() и any(), которые применяются к последовательностям (спискам, кортежам и т. д.) и возвращают bool значение.

all(iterable) — возвращает True, если все элементы iterable истинны (или iterable пуст).
any(iterable) — возвращает True, если хотя бы один элемент iterable истинен.

Эти функции могут использоваться для проверки каких-либо условий на всём наборе данных.
Например, проверить, что все числа больше нуля, или что хотя бы одно число больше 10.

Важные моменты:
— Для пустых iterable all() вернёт True, а any()False.
— Элемент считается ложным, если его bool() равен False.
— Функции останавливаются при первом ложном (для all) или истинном (для any) элементе.

🔗 Python tricks
Использование with для работы с файлами

Когда вы работаете с файлами в Python, важно не забыть закрыть файл после завершения работы с ним. Использование конструкции with позволяет автоматически управлять ресурсами, такими как файлы, и гарантирует, что они будут закрыты, даже если произойдет ошибка.

Использование конструкции with делает код более чистым и безопасным, снижая вероятность ошибок и утечек ресурсов.

🔗 Python tricks
Использование f-строк для форматирования строк

f-строки, доступные в Python 3.6 и выше, позволяют легко и удобно форматировать строки, внедряя в них значения переменных. Это делает код более читаемым и уменьшает количество ошибок при форматировании.

Использование f-строк значительно улучшает процесс работы со строками в Python и делает код более чистым и понятным.

🔗 Python tricks
Использование collections.Counter для подсчета элементов в списке

Модуль collections в Python предоставляет класс Counter, который удобно подсчитывает количество вхождений элементов в итерируемом объекте, таком как список или строка. Это позволяет быстро анализировать данные без написания сложного кода.

Использование Counter делает процесс анализа данных более эффективным и удобным, избавляя вас от необходимости писать циклы и дополнительные условные операторы.

🔗 Python tricks
Использование itertools.groupby для группировки данных

Модуль itertools в Python предоставляет множество полезных функций для работы с итераторами. Одна из них — groupby, которая позволяет группировать последовательности данных по ключу. Это может быть особенно полезно для анализа и обработки данных.

Использование itertools.groupby позволяет значительно упростить код для группировки данных и сделать его более читабельным.

🔗 Python tricks
Использование defaultdict из модуля collections

Модуль collections в Python предлагает полезные структуры данных, одной из которых является defaultdict. Эта структура позволяет автоматически инициализировать значения в словаре для новых ключей, что упрощает код и делает его более читаемым.

Использование defaultdict позволяет избежать необходимости предварительной проверки существования ключа в словаре, что делает код более чистым и эффективным.

🔗 Python tricks
Атрибут __all__

Атрибут __all__ используется для контроля того, какие элементы модуля экспортируются при импорте с помощью from module import *.
Этот атрибут должен содержать список имен, которые будут экспортированы.

Если __all__ не определен, то при импорте будут экспортированы все имена, не начинающиеся с _.

Использование __all__ позволяет явно указать автору модуля, какие части модуля являются публичным API, а какие — внутренней реализацией.
Это способствует лучшей структуре кода и предотвращает неожиданный экспорт внутренних элементов модуля.

Проще говоря, __all__ — это простой механизм контроля области видимости при импорте. Он помогает организовать чистый публичный интерфейс модуля.

🔗 Python tricks
Argcomplete

Argcompleteэто библиотека для автодополнения аргументов командной строки.
Она позволяет легко добавить автодополнение для argparse в интерактивных оболочках (например, bash, zsh).

Библиотека работает в разных оболочках (bash, zsh и др.) без изменения кода и обладает простой интеграцией — достаточно декорировать функцию argparse декоратором @argcomplete.register.

Основные возможности argcomplete:
— Автоматическое дополнение имен файлов и каталогов при вводе путей.
— Предложение вариантов для аргументов на основе возможных значений, описанных через argparse.
— Дополнение для подкоманд в приложениях с вложенной структурой команд.

🔗 Python tricks
Библиотека yt-dlp

yt-dlpэто библиотека и утилита командной строки для скачивания видео с YouTube и других сайтов.

Основные возможности и применение yt-dlp:
— Поддерживает скачивание видео, аудио, плейлистов, каналов и др с YouTube. Помимо этого работает с сотнями других сайтов — Vimeo, Facebook, ВКонтакте, TikTok и др. Позволяет скачивать контент практически отовсюду.
— Извлечение метаданных и обложек видео.
— Конвертация медиафайлов в другие форматы после скачивания.
— Поддержка прокси и лимитов скорости.
— Множество настроек для извлечения данных, именования файлов, пост-обработки и т.д.
— Удобная утилита командной строки и модуль Python для автоматизации.

🔗 Python tricks
Функции, поддерживающие только именованные аргументы (kwargs)

**kwargs (keyword arguments) — это способ передачи произвольного количества именованных аргументов в функцию.

В функциях после позиционных и обычных именованных аргументов указывают параметр **kwargs.

В kwargs передаются аргументы в виде ключ-значение. Внутри функции kwargs становится словарем, где ключи — имена аргументов, значения — значения аргументов.
Благодаря этому через kwargs можно передать любое количество дополнительных аргументов в функцию.

Если одновременно используются *args и **kwargs, то в вызове сначала указываются *args.

🔗 Python tricks