Python School
88.9K subscribers
2.14K photos
5 videos
536 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official
Download Telegram
Сложение списков

Не всегда операторы в python ведут себя так, как мы привыкли. Например сложение списков.

Как видно, инструкция 28 в случае + простое сложение, а в случае += — сложение на месте, которое не приводит к созданию нового списка. += в данном случае сопоставим по производительности с list.extend.
Генераторные фунции

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

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

Попробуем использовать генераторные выражения (для получения среза будем использовать функцию islice из itertools, которая возвращает итератор по срезу)

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

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

Например у нас есть большой список словарей (объявления контекстной рекламы). Зададим начальное время выборки и конечное.

И попробуем выбрать все объявления, ставка которых выше 600 и дата попадает в выбранный интервал. Затем возьмем первые 1000 элементов полученного списка.

Как видим этот метод работает быстрее.
Однострочный условный оператор (тернарный оператор)

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

Использование тернарного оператора позволяет упростить код, особенно когда нужно выполнить простое условие и присвоить значение одной переменной на основе этого условия.
Сравнение быстродействия def и lambda-функций Python. Производные функции

А производная для функции построения графика — это же самая функция с определенными аргументами.

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

Вернёмся к первому. В случае проверки скорости создания функции, функция_для_замера() будет иметь одну цель — создать внутри себя def или lambda функцию. Её мы будем вызывать множество раз, и каждый раз она будет создавать одну и ту же функцию заново.
Использование enumerate для нумерации элементов в цикле

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

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

Для простого написания перечисления в Python можно организовать с помощью класса Enum. Этот класс можно назвать удобным способом инкапсуляции списка констант, чтобы они не были разбросаны по всему коду без структуры.
Использование Counter из модуля collections для подсчета элементов

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

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

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

Использование zip упрощает задачи параллельной итерации и делает код более чистым и читаемым, избавляя от необходимости вручную синхронизировать индексы нескольких списков.
Использование метода __int__(self)

Метод int(self) в Python позволяет определить пользовательское преобразование объекта в целое число. Этот метод полезен для пользовательских классов, которые хотят определить способ преобразования своих данных в целочисленный формат.

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

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

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

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

Форматирование строк — это распространённая задача в программировании, и Python предоставляет несколько способов сделать это. Один из самых удобных и читаемых — это использование f-строк (f-strings), которые появились в Python 3.6. f-строки позволяют встраивать выражения внутри строк, делая форматирование более простым и понятным.

Использование f-строк позволяет делать форматирование строк более интуитивным и сокращает вероятность ошибок, связанных с более старыми методами форматирования (например, с использованием оператора % или метода str.format())
Использование генераторов списков (list comprehensions) для фильтрации и преобразования данных

Генераторы списков (list comprehensions) — это мощный инструмент в Python, который позволяет создавать списки на основе существующих итерируемых объектов в краткой и читабельной форме. Они особенно полезны для фильтрации и преобразования данных.

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

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

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

Федеральный проект «Содействия занятости» каждой маме в декрете предоставляет возможность воспитывать своих детей и одновременно развивать свои профессиональные навыки, открывая новые возможности для карьерного роста!

Преимущества нашей программы:
- бесплатное обучение (сэкономьте до 100к рублей на своем образовании!)
- 25+ востребованных специальностей (специалист по работе на МП, психолог, специалист по нейросетям, smm специалист, таргетолог и другие)
- удобный онлайн-формат и гибкое расписание занятий (заниматься можно, пока ребенок спит или играет в песочнице)
- качественное обучение от преподавателей ведущих ВУЗов РФ
- обучение по государственной лицензии и получение по окончании документа об образовании и портфолио для работодателей

А самое главное, вас ждёт помощь с трудоустройством от Центра карьеры- получите доступ в канал с 2200+вакансиями со всей России, ваше резюме отправят компаниям-партнерам и подготовят к собеседованию с ними🔥

Получение новой профессии станет вашим ключом к независимости и финансовой стабильности.

Не упустите шанс изменить свою жизнь к лучшему! Записывайтесь на бесплатное обучение прямо сейчас 👉 https://go.redav.online/edd49945b21df860?erid=LdtCKSmtC&m=1 👈
Использование enumerate для получения индекса и значения в цикле

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

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

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

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

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

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

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

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

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

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