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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Использование itertools.groupby для группировки элементов

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

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

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

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

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

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

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

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

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

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

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

🔗 Python tricks
random.choice

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

🔗 Python tricks
Однострочное условное выражение (тернарный оператор)

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

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

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

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

🔗 Python tricks
Использование zip для объединения нескольких списков

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

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

🔗 Python tricks
Использование list comprehension для фильтрации и преобразования данных

List comprehension в Python предоставляет лаконичный способ создания списков, позволяя не только итерировать, но и фильтровать и преобразовывать данные в одной строке. Это улучшает читаемость кода и уменьшает его объем.

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

🔗 Python tricks
LineaPy

LineaPy
это библиотека для работы с временными рядами и анализа временных данных.

Эта библиотека позволяет быстро решать типовые задачи анализа временных рядов без необходимости "изобретать велосипед".
Она удобна для анализа временных данных в задачах прогнозирования, мониторинга, выявления сезонности, трендов и аномалий. Имеет интуитивный API и хорошую документацию.

В этом примере мы получили прогнозные значения временного ряда на 5 периодов вперед с помощью модели ARIMA из LineaPy за считанные строки кода.

🔗 Python tricks
Композиция (ассоциация) классов

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

Внешний класс не наследует функционал внутреннего, в отличие от наследования, просто использует его.

Композиция классов позволяет создавать сложные объекты из простых классов и подходит для моделирования реальных взаимосвязей.

🔗 Python tricks
Атрибуты объектов

Атрибуты — это переменные, связанные с объектом класса и хранящие его данные.
Они объявляются внутри класса, а доступ к атрибутам происходит через точку после объекта (object.attr). Бывают public, приватными (__attr) и защищенными (_attr). Публичные атрибуты доступны везде, приватные только в классе, защищенные в классе и дочерних.

Значение по умолчанию None, если не задано другое.

Атрибуты можно создать в конструкторе init() и изменить в методах класса, а новые атрибуты к объектам можно добавлять в рантайме.

🔗 Python tricks
statistics.median

Функция median из модуля statistics используется для вычисления медианы списка чисел. Медиана — это элемент, который делит упорядоченный список пополам. Если список имеет нечетное количество элементов, то медиана — это значение в середине списка. Если список имеет четное количество элементов, то медиана — это среднее значение двух центральных элементов.

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

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

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

🔗 Python tricks
Использование itertools для создания комбинаций

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

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

🔗 Python tricks
Быстрая замена значений в столбце DataFrame на основе условий

Когда у вас есть DataFrame и вам нужно заменить значения в столбце на основе определенных условий, вместо использования циклов, можно воспользоваться методом np.where из библиотеки NumPy.

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

🔗 Python tricks
list.extend

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

🔗 Python tricks
math.gcd

Функция math.gcd используется для нахождения наибольшего общего делителя (НОД) двух чисел. Наибольший общий делитель (НОД) двух чисел — это наибольшее число, на которое оба числа делятся без остатка. В первом примере НОД чисел 48 и 18 равен 6, потому что 6 является наибольшим числом, которое делит и 48, и 18 нацело.

🔗 Python tricks
math.isclose

Функция math.isclose проверяет, находятся ли два числа близко друг к другу с учетом заданной относительной и абсолютной погрешности. a и b - числа, которые нужно сравнить. rel tol - относительная погрешность (по умолчанию 1e-09). abs tol - абсолютная погрешность (по умолчанию 0.0). Функция возвращает True, если числа находятся достаточно близко друг к другу, и False в противном случае.

🔗 Python tricks
Быстрое получение диапазона дат

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

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

🔗 Python tricks