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

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

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

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
Метод issuperset()

Метод issuperset() возвращает True, если все элементы указанного набора существуют в исходном наборе, в противном случае он возвращает False.

🔗 Python tricks
Моржовый оператор (Walrus Operator)

Моржовый оператор (Walrus operator) — это оператор :=, введенный в версии 3.8. Он позволяет одновременно присвоить значение переменной и вернуть его.

Синтаксис выглядит так: имя_переменной := выражение. Справа вычисляется выражение и присваивается переменной слева
Переменная доступна в остальной части выражения после оператора.

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

🔗 Python tricks
set.intersection update

Метод intersection update() удаляет элементы, которых нет в обоих множествах (или во всех множествах, если сравнение выполняется между более чем двумя множествами). Данный метод отличается от метода intersection(). intersection() возвращает новое множество без нежелательных элементов, а метод intersection update() удаляет ненужные элементы из исходного множества.

🔗 Python tricks
string.lstrip

lstrip() возвращает копию строки с удаленными ведущими символами. Все комбинации символов в аргументе chars удаляются слева от строки до первого несоответствия. Если аргумент chars не указан, все ведущие пробелы удаляются из строки.

🔗 Python tricks
Особенности работы с изменяемой и не изменяемой коллекцией (ч.2)

Список изменяем и тут надо быть очень внимательным, чтобы не допустить серьезную ошибку! Сравните данный пример с предыдущем примером со строками.
🔗 Python tricks
Класс Process

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

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

🔗 Python tricks
PySimpleGUI

PySimpleGUI — это простая и легкая в использовании библиотека для создания графического интерфейса (GUI) в Python. Она предоставляет простые инструменты для создания оконных приложений с использованием графических элементов, таких как кнопки, текстовые поля, чекбоксы и др. PySimpleGUI предоставляет удобный интерфейс для создания GUI, особенно для начинающих разработчиков.

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

🔗 Python tricks
Особенности работы с изменяемой и не изменяемой коллекцией (ч.2)

Список изменяем и тут надо быть очень внимательным, чтобы не допустить серьезную ошибку! Сравните данный пример с предыдущем примером со строками.
🔗 Python tricks
Создание объектов, поддерживающих выражение with

Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit
🔗 Python tricks
Добавляем условие для фильтрации

Важно: Условие проверяется на каждой итерации, и только элементы ему удовлетворяющие идут в обработку в выражении.

Мы можем использовать несколько условий, комбинируя их логическими операторами
🔗 Python tricks
Добавляем обработку элемента в выражении

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

Выражение выполняется независимо на каждой итерации, обрабатывая каждый элемент индивидуально.
🔗 Python tricks
Dictionary Comprehension

Dictionary comprehension — это конструкция, позволяющая компактным способом создавать словари на основе существующих итерируемых объектов.

Dictionary comprehension применяется в ситуациях, когда нужно:
— Быстро создать словарь из списка или другого итерируемого объекта.
— Преобразовать одну структуру данных в словарь.
— Создать словарь с некоторой обработкой элементов.

Основные преимущества dictionary comprehension:
— Компактный и читаемый синтаксис по сравнению с циклами.
— Лаконичное создание словарей "на лету".
— Оптимизированная производительность по сравнению с циклами.
🔗 Python tricks
set.remove

Метод remove() удаляет указанный элемент из множества и обновляет множество. Он не возвращает никакого значения. Если элемент, переданный в remove(), не существует, генерируется исключение KeyError.

🔗 Python tricks
Аналоги в виде цикла for и в виде функций

Задачи решаемые с помощью генераторов выражений можно решить и без них. Каждый генератор выражений можно переписать в виде цикла for, но не каждый цикл for можно представить в виде такого выражения.
🔗 Python tricks
Улучшаем читаемость

Не забываем, что в Python синтаксис позволяет использовать переносы строк внутри скобок. Используя эту возможность, можно сделать синтаксис генераторов выражений более легким для чтения.
🔗 Python tricks
Green threads

Зелёные потоки (green threads) — это потоки выполнения, управление которыми вместо операционной системы производит виртуальная машина (ВМ). Green threads эмулируют многопоточную среду, не полагаясь на возможности ОС по реализации легковесных потоков. Управление ими происходит в пользовательском пространстве, а не пространстве ядра, что позволяет им работать в условиях отсутствия поддержки встроенных потоков.

🔗 Python tricks
pprint

pprint (pretty-print) предоставляет функционал для красивого вывода структур данных в удобочитаемой форме. Он используется для отображения сложных объектов, таких как словари и списки, с отступами и переносами строк для лучшей читаемости.

🔗 Python tricks
string.title

Метод title() возвращает версию строки, где первый символ каждого слова пишется с заглавной буквы (если первый символ — буква). Обрати внимание, данный метод также делает первую букву после апострофа заглавной.

🔗 Python tricks
Решение с помощью функций

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

Можно применять и более старые функциональные подходы для решения тех же задач, комбинируя map(), lambda и filter().

🔗 Python tricks
Выражения-генераторы

Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в том, что они выдают элемент по-одному, не загружая в память сразу всю коллекцию.

🔗 Python tricks