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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Sketch

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

Основные возможности:
— Быстрый и эффективный подсчёт статистик по данным, таких как сумма, среднее, медиана, дисперсия.
— Аппроксимация распределений и плотностей вероятности.
— Вычисление квантилей, сглаживания, гистограмм.
— Тестирование статистических гипотез, оценка p-value.
— Генерация случайных чисел из разных распределений.

Sketch позволяет ускорить статистический анализ данных с помощью простого и интуитивного API и используется для:
— Первичного анализа и визуализации данных.
— Статистических тестов в научных исследованиях.
— Построения прототипов моделей машинного обучения.
— Анализа пользовательских действий и событий.
— Симуляции процессов на основе статистических моделей.

🔗 Python tricks
rembg

Rembg — это библиотека для удаления фона из изображений.

Основные возможности:
— Автоматическое удаление фона с использованием нейросетей.
— Возможность точной настройки для сложных изображений .
— Поддержка изображений разных форматов — JPG, PNG, GIF и др.

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

🔗 Python tricks
Комплексные числа

Комплексные числа представлены типом данных complex.

Комплексные числа можно создавать разными способами:
— Используя конструктор complex(a, b), где a — действительная часть, b — мнимая.
— Из вещественного числа, добавив к нему мнимую часть. Например, a + bj.
— Из строкового представления с помощью
complex(string).

С комплексными числами можно выполнять стандартные математические операции.
Для доступа к частям комплексного числа используются атрибуты real и imag.

Встроенные функции abs(), conjugate(), polar() позволяют получить модуль, сопряженное число и представление в тригонометрической форме.

🔗 Python tricks
Распаковка массива

Распаковка массива (iterable unpacking) — это удобный синтаксис для присваивания элементов iterable объектов (списков, кортежей и т. д.) отдельным переменным.

Основные моменты, которые нужно знать:
— Распаковка производится с помощью звездочки *.
— Количество переменных должно соответствовать количеству элементов в iterable объекте, иначе возникнет ошибка.
— Можно использовать распаковку для пропуска элементов.
— Для сбора оставшихся элементов в список используется конструкция *others.
— Распаковка работает с вложенными списками.
— Формат распаковки можно использовать и при передаче аргументов в функции.

🔗 Python tricks
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