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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Использование списковых включений (List Comprehensions) для создания списков на основе других коллекций

Когда вам нужно создать новый список, применяя операцию ко всем элементам другого списка или фильтруя элементы по определённым условиям, списковые включения (list comprehensions) позволяют сделать это в одной строке.

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

🔗 Python tricks
Использование модуля os.path и pathlib для удобной работы с путями

Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.

Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.

🔗 Python tricks
Быстрое получение основных статистических характеристик с использованием statistics или pandas

Если вам нужно получить основные статистические показатели (среднее, медиану, стандартное отклонение и т.д.) для набора данных, Python предлагает удобные инструменты для этого. Вы можете использовать модуль statistics для работы с небольшими наборами данных или pandas для анализа больших данных в DataFrame.

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

🔗 Python tricks
Деструкторы

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

Используется в основном для закрытия файлов, подключений к БД.

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

🔗 Python tricks
Humanize

Humanize — это библиотека, которая предоставляет функции для более удобочитаемого форматирования данных.

Основные возможности:
— Преобразование чисел в удобочитаемые строки.
— Форматирование дат и времени в понятные фразы типа "3 дня назад".
— Преобразование идентификаторов в удобные для чтения слоги.
— Сокращение длинных строк по словам для компактного отображения.

Humanize полезен в приложениях, где нужно отображать данные в интерфейсе:
— Веб-приложения для отображения статистики.
— Информационные табло и панели мониторинга.
— Системы аналитики для визуализации данных.
— CLI-интерфейсы для вывода данных пользователю.

Использование Humanize позволяет сделать отображение данных более естественным и понятным для человека. Это улучшает user experience приложения.

🔗 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
random.shuffle

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

🔗 Python tricks
Сравнение быстродействия def и lambda-функций Python. Общие функции

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

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

🔗 Python tricks
Сравнение быстродействия def и lambda-функций Python. Общие функции

Всего у нас будет 2 диаграммы: полная и усредненная. В каждой по 2 графика: для def и lambda функций. Всего нам потребуется 4 черепахи.
Список значений для 1 и 2 графика очевиден — несколько результатов выполнения замера скорости. С 3 и 4 всё сложнее — нужно найти среднее арифметическое одного из 2 первых графиков.

Дабы слишком не заморачиваться над тем, чтобы график никуда не вылезал, найдём разницу между каждым элементом каждого графика и средним значением между средними арифметическими из 1 и 2 графика. В итоге, на графике мы будем видеть не общее значение, а разницу.

🔗 Python tricks
random.shuffle

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

🔗 Python tricks
math.fabs

math.fabs — это функция, которая возвращает абсолютное значение числа в виде числа с плавающей точкой. В отличие от встроенной функции abs, которая может возвращать целое или число с плавающей точкой в зависимости от типа входного значения, math.fabs всегда возвращает значение типа float.

🔗 Python tricks
Использование выражений-генераторов для экономии памяти

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

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

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

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

🔗 Python tricks
🔴 Реальный собес на Python от ТехЛида с опытом работы в Авито и Яндексе в прямом эфире

11 сентября (уже в четверг!) в 19:00 по мск приходи на прямой эфир с реальным собеседованием на Middle разработчика.

Почему точно нужно прийти:
📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Савве

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

🔍Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама.
О рекламодателе.
Быстрая смена значений двух переменных без временной переменной

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

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

🔗 Python tricks
Быстрая смена значений двух переменных без временной переменной

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

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

🔗 Python tricks
Использование оператора _ для игнорирования значений

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

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

🔗 Python tricks
Атрибут __all__

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

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

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

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

🔗 Python tricks
Запускаем ботов, парсеры и небольшие приложения от 45₽/мес!
Всё включено: поддержка 24/7, простое управление и мгновенная активация.

Сравните тарифы:
▶️ Старт (45₽) - 50MB RAM, 50MB SSD
▶️ Базовый (75₽) - 100MB RAM, 110MB SSD
▶️ Профи (450₽) - 2GB RAM, 3GB SSD (и выше!)

Не переплачивайте! Начните с малого и масштабируйтесь по мере роста.

Перейти к выбору тарифа → @Skriptnull

#PythonХостинг #Хостинг #python #Разработка #Бот
Использование defaultdict из модуля collections

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

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

🔗 Python tricks