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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
sets.isuperset()

Функция sets.isuperset() позволяет проверить, является ли один set подмножеством другого.
Она принимает в качестве аргумента другой set и возвращает boolean значение — True если первый set содержит все элементы второго, и False в противном случае.

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

🔗 Python tricks
collections.Mapping

collections.Mappingэто абстрактный базовый класс, который представляет отображение ключ-значение.
Он наследуется встроенными типами словарей, такими как dict, а также другими типами, которые реализуют схожее поведение, например OrderedDict.

Класс Mapping определяет интерфейс, общий для всех отображений ключ-значение, включая такие методы как keys(), values(), items() и другие.
Это позволяет писать универсальный код, который будет работать с любым типом, реализующим этот интерфейс.

Например, Mapping часто используется вместе с isinstance или issubclass для проверки, является ли объект словарем. Также он полезен при написании функций, которым нужно принимать на вход отображения, но без привязки к конкретному типу как dict. Mapping гарантирует наличие основных методов словаря у переданного объекта.

🔗 Python tricks
Set.update

В данном коде продемонстрировано применение метода update() для добавления в множество строки и словаря. Метод разбивает строку на отдельные символы и добавляет их в множество number1. Аналогично он добавляет ключи словаря в множество number2.

🔗 Python tricks
Сглаживание списка

Когда вам дан многоуровневый список или массив, который не является одномерным, вы можете захотеть сгладить его до простого списка.

🔗 Python tricks
Использование функции sorted()

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

🔗 Python tricks
Использование коллекций Python

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

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

Python-модуль itertools представляет собой набор инструментов для работы с итераторами. В состав этого модуля входит множество средств для генерирования различных последовательностей.

🔗 Python tricks
bool

Метод bool() принимает указанный аргумент и возвращает его логическое значение. Метод bool() возвращает False, если аргумент пуст, имеет значение False, 0 или None. True - если аргументом является любое число (кроме 0), True или строка.

🔗 Python tricks
Использование функции zip() при работе со списками

Предположим, что вам нужно скомбинировать несколько списков одинаковой длины и вывести результирующий список. Как и в других случаях, подобную задачу можно решить, так сказать, «в лоб», а можно воспользоваться чем-то вроде универсальной функции zip().

🔗 Python tricks
Итерирование списков с помощью enumerate()

Метод enumerate() добавляет к итерируемой коллекции нумерацию и возвращает объект, генерирующий пары элементов, состоящие из индекса элемента и самого этого элемента.

🔗 Python tricks
Находим подстроку

Ключевое слово in используется для проверки, содержится ли элемент в последовательности (список, кортеж, строка) или словаре.
Возвращает логическое значение True если элемент находится в последовательности/словаре, False если нет.

Что нужно знать про поиск подстроки в строке:
— Поиск чувствителен к регистру символов, т. е. различает заглавные и строчные буквы.
— Подстрока может состоять из одного символа.
— Поиск осуществляется слева направо по всей строке.
— Как только вхождение подстроки найдено — поиск прекращается.
— Можно искать все вхождения подстроки, обернув проверку в цикл.

🔗 Python tricks
Метод get у словарей

Метод используется для получения значения по ключу. Синтаксис: dict.get(key)
Если ключ есть в словаре, возвращается соответствующее значение, если ключа нет, вместо ошибки возвращается значение None.

Можно задать customized значение, если ключ отсутствует: dict.get(key, customized_value)

Метод полезен, когда нет уверенности, что ключ присутствует в словаре, так как позволяет избежать ошибки при обращении к несуществующим ключам.

🔗 Python tricks
Использование генераторов списков

Генераторы списков используются для создания новых списков из других итерируемых объектов. Так как генератор возвращает списки, его описание представляет собой выражение, включённое в квадратные скобки, выполняемое для каждого элемента списка.

Сюда же входит и описание цикла for, выполняющего проход по каждому элементу. Генераторы списков позволяют ускорить работу со списками за счёт того, что интерпретатор Python оптимизирован в расчёте на шаблоны, повторяющиеся при обходе списка.

🔗 Python tricks
Преобразование двух списков в словарь

Предположим, у нас имеется два списка. Один из них содержит имена студентов, а второй — их оценки. Как преобразовать эти два списка в словарь? Если прибегнуть для этого к функции zip(), то данная задача может быть решена так.

🔗 Python tricks
Библиотека Typer

Typerэто библиотека для создания командных интерфейсов приложений на Python.
Она позволяет легко создавать CLI приложения с поддержкой аргументов, опций, субкоманд и автоматической генерацией help.

Основные возможности Typer:
— Декоратор @typer.command() для определения команд и подкоманд.
— Автоматический парсинг аргументов и опций.
— Валидация и tipped annotations для аргументов и опций.
— Автоматическая генерация help с описаниями.
— Встроенная поддержка Click для обратной совместимости.

Typer часто используется для создания утилит командной строки, CLI интерфейсов для python приложений, API клиентов, DevOps инструментов и других задач, где нужен простой и удобный интерфейс командной строки.

🔗 Python tricks
Click

Clickпопулярная библиотека для создания интерфейса командной строки (CLI) в приложениях Python.
Основные преимущества Click — простота использования, элегантный и понятный код, мощные возможности по созданию комплексных CLI. Работает на Python 3.6 и выше.

Возможности:
— Определение команд и групп команд с помощью декоратора @click.command().
— Декларативное описание аргументов и опций.
— Автоматический парсинг аргументов командной строки.
— Генерация help сообщения.
— Поддержка bash/zsh автодополнения.
— Вложенные команды и группы подкоманд.
— Цветной вывод в терминал.

Click широко используется для создания консольных утилит, CLI интерфейсов для web фреймворков, DevOps инструментов, скриптов автоматизации и других задач, где требуется командная строка.

🔗 Python tricks
Функция sorted

sorted() используется для сортировки элементов в списке, кортеже или другой последовательности.
Она возвращает новый отсортированный список или итератор, не изменяя исходную последовательность.

По умолчанию сортировка выполняется в возрастающем порядке. Для сортировки в убывающем порядке нужно указать аргумент reverse=True.
Для сортировки по определенному ключу можно использовать ключевой аргумент key. Он принимает функцию, которая извлекает ключ для сортировки из каждого элемента.

Для сортировки объектов можно использовать атрибуты объекта в качестве ключа сортировки.
Сортировка происходит на месте для списков, и создаётся новый отсортированный список для кортежей и других неизменяемых последовательностей.

🔗 Python tricks
bashplotlib

bashplotlib - это инструмент для построения графиков прямо в терминале с помощью Python. Он позволяет создавать простые графики прямо из командной строки.

Чтобы удобнее было работать с bashplotlib, можно создать функцию-обёртку для упрощения построения графиков. Это позволит строить разные типы графиков в терминале с помощью bashplotlib, и легко настраиваться для новых типов графиков или изменений

🔗 Python tricks
Библиотека HTTPX

Расширение для Requests. Оно поддерживает все функции библиотеки, помогает работать с HTTP и асинхронностью. HTTPX помогает отправлять и получать запросы, работать с клиент-серверными протоколами взаимодействия веб-сервера и приложения.

🔗 Python tricks
Функция zip()

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

Итератор возвращает кортежи, содержащие i-й элемент из каждой из последовательностей. Количество элементов в итоговом итераторе равно длине самой короткой последовательности.

zip можно использовать для "сшивания" вместе данных из нескольких списков. Например, имена и фамилии из двух списков можно комбинировать в один список имя-фамилия.
Результатом zip является итератор, который можно превратить в список или кортеж. Также на результат можно применять различные операции, такие как цикл for.

zip используется вместе с распаковкой кортежей, чтобы присвоить элементы нескольких итераторов переменным в цикле.

🔗 Python tricks