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
Объединение нескольких CSV файлов в один

Когда у вас есть несколько файлов CSV с одинаковой структурой, часто нужно объединить их в один для дальнейшего анализа или обработки. Библиотека Pandas позволяет сделать это очень просто и быстро.

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

🔗 Python tricks
Парсинг URL и получение компонентов

Когда вы работаете с веб-приложениями или анализируете веб-данные, часто нужно извлекать компоненты из URL, такие как протокол, домен, путь и параметры запроса. Библиотека urllib.parse позволяет сделать это легко.

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

🔗 Python tricks
tell()

Метод tell() используется для получения текущей позиции (смещения) при работе с файлами и файлоподобными объектами.

При открытии файла указатель текущей позиции находится в начале. По мере чтения/записи он смещается.
Чтобы узнать текущее значение этого смещения, применяется метод tell().

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

Метод tell() возвращает текущую позицию в файле в байтах от начала.

🔗 Python tricks
statistics.median_low

Функция statistics.median low из модуля statistics вычисляет низкую медиану последовательности чисел. Низкая медиана используется в случае, когда список имеет нечетное количество элементов, и возвращает значение, которое находится в “нижней” половине списка, то есть среди наименьших значений. В данном случае список data содержит нечетное количество элементов, и низкая медиана будет равна 5, так как это наименьшее значение в “нижней” половине списка.

🔗 Python tricks
list.insert

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

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

Иногда возникает задача извлечь часть текста, который находится между двумя подстроками. Этот лайфхак позволит сделать это быстро и просто с использованием метода str.split().

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

🔗 Python tricks
Преобразование строки в "человеко-понятный" URL (слаг)

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

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

🔗 Python tricks
Использование функции functools.lru_cache для кэширования результатов

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

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

🔗 Python tricks
Безопасное извлечение вложенных значений из JSON с помощью dict.get

Когда вы работаете с JSON или вложенными словарями в Python, бывает полезно проверять наличие ключей перед тем, как получить их значение, чтобы избежать ошибок. Метод dict.get() позволяет безопасно извлекать значения, даже если ключ отсутствует.

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

🔗 Python tricks
Автоматическое удаление временных файлов с помощью контекстного менеджера

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

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

🔗 Python tricks
Быстрое объединение множества CSV файлов в один

DataFrame
Если у вас есть множество CSV файлов в одной директории, и вам нужно объединить их в один DataFrame для дальнейшего анализа, вы можете сделать это быстро с использованием библиотеки pandas и метода glob.

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

🔗 Python tricks
isatty()

isatty() используется для проверки, подключен ли объект файла к интерактивному терминалу. Интерактивный терминал — это терминал, который позволяет пользователю вводить команды и получать непосредственный отклик. Это часто включает в себя консольное окно или оболочку.

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

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

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

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

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

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

🔗 Python tricks
sets.isuperset()

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

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

🔗 Python tricks
Использование функции functools.lru_cache для кэширования результатов функции

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

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

🔗 Python tricks
Использование оператора else с циклом for или while

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

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

🔗 Python tricks
Использование enumerate() для работы с индексами в цикле

Когда вы работаете с итерацией по спискам или другим последовательностям и вам нужно получить не только элемент, но и его индекс, enumerate() — идеальный инструмент.

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

🔗 Python tricks
Использование однострочных условий (тернарных операторов)

Иногда нужно сделать выбор между двумя значениями на основе условия. Вместо написания полного блока if-else, можно использовать тернарный оператор, который позволяет записать условие и выбор значений в одну строку.

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

🔗 Python tricks
Использование множества (set) для удаления дубликатов из списка

Когда вы работаете со списками и хотите быстро удалить из них дубликаты, использование множества (set) — это самый простой и быстрый способ.

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

🔗 Python tricks