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
Используем * для мерджа списка, кортежа и множества в одну строчку

Для того, чтобы это сделать самый элегантный способ - использование *

Звездочки можно использовать в качестве префиксов для распаковки их элементов. Но помимо распаковки, звездочки также можно использовать для деструктуризации присваиваний в Python.
🔗 Python tricks
Самый легкий способ мерджить словари

Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.

Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.

🔗 Python tricks
os.rename()

В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.

🔗 Python tricks
Duck typing

Duck typing — это парадигма в программировании, используемая в языках с динамической типизацией, таких как Python. Суть duck typing заключается в том, что тип объекта определяется его поведением (методами и свойствами), а не явно указанным интерфейсом или базовым классом.

В Python duck typing часто выражается фразой: «Если это выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, и есть утка.»

🔗 Python tricks
Forwarded from Wylsacom Red (Randomize Bot 🎲 [Рандомайзер])
⚡️Мегарозыгрыш призов! Разыгрываем два MacBook Pro 14’’ Space Gray на M3, два iPhone 15 Pro Max 256 ГБ цвета Black Titan и Natural Titan, два Oculus Quest 3.

Для участия нужно:

• подписаться на @whackdoor;
• подписаться на @wylsared;
• нажать кнопку «Участвую».

Итоги конкурса подведёт бот 5 декабря в 19:00, он выберет победителей. Порядок победителей будет такой: первое имя — MacBook Pro 14, второе — MacBook Pro 14, третье — iPhone 15 Pro Max 256 ГБ Natural Titan, четвёртое — iPhone 15 Pro Max 256 ГБ Black Titan, пятое и шестое — Oculus Quest 3.

Приз отправляем за наш счёт по РФ, Беларуси и Казахстану. Всем удачи!

⚠️ Если кнопка подвисла — не переживайте, вас все равно зарегистрирует, просто выполните условия и нажмите «Участвовать».
igraph

igraph — это библиотека для работы с графами (сетями) в Python. Она предоставляет инструменты для создания, анализа и визуализации графов. Если у вас нет установленной библиотеки igraph, вы можете установить её с помощью pip:

pip install python-igraph

Более подробную информацию о igraph и его возможностях можно найти в официальной документации.

🔗 Python tricks
Используем встроенные функции в Python для написания стандартной логики (ч.1)

В Python есть несколько встроенных функций, которые помогают при написании некоторых стандартных логических операций.

Например, функция map() - известная и часто используемая функция. Она получает два параметра, один из которых - функция, а другой - итератор. При выполнении функции map функция применяется к каждому элементу в итераторе.
🔗 Python tricks
Используем встроенные функции в Python для написания стандартной логики
(ч.2)

Как показано в примере выше, с помощью функции map() мы можем избежать написания цикла for для выделения заглавными буквами каждого слова в списке имен.

Другая известная функция - reduce(). Как следует из ее названия, она применяет функцию к итератору и выполняет для нее операцию reduce.
🔗 Python tricks
Работа с регистрами

Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами.

Для преобразования регистра используются методы строк:
str.upper() — преобразует строку к верхнему регистру.
str.lower() — преобразует строку к нижнему регистру.
str.swapcase() — меняет регистр каждого символа на противоположный.
str.capitalize() — делает первую букву заглавной, остальные строчными.

Регистр конкретного символа можно проверить в строке методами:
str.isupper() — проверка на заглавный регистр.
str.islower() — проверка на строчный регистр.

Регистр важно учитывать при сравнении строк на равенство.

🔗 Python tricks
Класс Process

Process — это класс для создания и управления отдельными процессами из модуля multiprocessing.
Создание процесса выполняется конструктором Process, передавая целевую функцию и аргументы.

При создании процессов нужно учитывать:
— Ограничения на доступ к данным между процессами.
— Синхронизацию процессов при необходимости.

🔗 Python tricks
Декоратор override

@override используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.

Это может быть полезно для:

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

— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.

— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
🔗 Python tricks
set.difference update

Метод difference update() вычисляет разницу между двумя множествами (A – B). В результате множество A обновляется полученным множеством. В данном примере продемонстрировано применение метода.

🔗 Python tricks
Подсчет количества элементов

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

🔗 Python tricks
Наиболее частый элемент в списке

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

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

🔗 Python tricks
Frozenset

frozensets используются для создания неизменяемых множеств.

Основные особенности frozensets:

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

Здесь мы создали frozenset с элементами. Попытка добавить элемент вызывает ошибку, так как frozensets неизменяемы. Затем frozenset используется как ключ в словаре.

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

Библиотека setuptools предназначена для создания и распространения пакетов Python.

Она позволяет:
— Упростить установку пакетов с помощью команды pip install.
— Описывать зависимости между пакетами.
— Автоматически собирать пакеты при установке.
— Загружать пакеты на PyPI для широкого распространения.

🔗 Python tricks
Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный ниже пример кода, чтобы понять, как это работает.

🔗 Python tricks
Повторение элемента в списке

Чтобы увеличить количество строк, можно использовать звездочку *. Но этот лайфхак применим и к спискам.

🔗 Python tricks
Класс Template

Класс Template позволяет создавать шаблоны текста с подстановкой переменных.

Это удобно для генерации текста на основе шаблона.


🔗 Python tricks
Асинхронный фреймворк Robyn

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

Основные возможности Robyn:
— Удобные декораторы и функции для создания асинхронных задач и работы с ними (например, rob, task, run).

— Инструменты для организации параллельного выполнения задач (decorators like parallel, chunks).

— Интеграция с asyncio для использования асинхронных библиотек.

— Удобные классы и функции для работы с очередями задач (Queue, run_every).

— Встроенные инструменты логирования и отладки.

— Поддержка типизации с помощью typing.

🔗 Python tricks
Константы пакета string

В Python есть несколько полезных констант в пакете string, которые нужно знать начинающему программисту:

string.ascii_letters: строка со всеми буквами английского алфавита (строчными и прописными).
string.digits: строка со всеми цифрами.
string.hexdigits: строка со всеми шестнадцатеричными цифрами.
string.octdigits: строка со всеми восьмеричными цифрами.
string.punctuation: строка со всеми знаками пунктуации.
string.whitespace: строка со всеми пробельными символами.

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

🔗 Python tricks