Выражения-генераторы
Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в том, что они выдают элемент по-одному, не загружая в память сразу всю коллекцию.
Разъяснивший Python
Выражения-генераторы (generator expressions) доступны, начиная с Python 2.4. Основное их отличие от генераторов коллекций в том, что они выдают элемент по-одному, не загружая в память сразу всю коллекцию.
Разъяснивший Python
Ветвление выражения
Условия ветвления пишутся не после, а перед итератором.
В данном случае if-else это не фильтр перед выполнением выражения, а ветвление самого выражения, то есть переменная уже прошла фильтр, но в зависимости от условия может быть обработана по-разному!
Разъяснивший Python
Условия ветвления пишутся не после, а перед итератором.
В данном случае if-else это не фильтр перед выполнением выражения, а ветвление самого выражения, то есть переменная уже прошла фильтр, но в зависимости от условия может быть обработана по-разному!
Разъяснивший Python
Особенности выражений-генераторов (ч.1)
Генаратор нельзя писать без скобок — это синтаксическая ошибка.
При передаче в функцию дополнительные скобки необязательны.
Нельзя получить длину функцией
Нельзя распечатать элементы функцией
Разъяснивший Python
Генаратор нельзя писать без скобок — это синтаксическая ошибка.
При передаче в функцию дополнительные скобки необязательны.
Нельзя получить длину функцией
len()Нельзя распечатать элементы функцией
print()Разъяснивший Python
Особенности выражений-генераторов (ч.2)
Обратите внимание, что после прохождения по выражению-генератору оно остается пустым!
Выражение-генератор может быть бесконечным.
К выражению-генератору не применимы срезы!
Из генератора легко получать нужную коллекцию. Это подробно рассматривается в следующей главе.
Разъяснивший Python
Обратите внимание, что после прохождения по выражению-генератору оно остается пустым!
Выражение-генератор может быть бесконечным.
К выражению-генератору не применимы срезы!
Из генератора легко получать нужную коллекцию. Это подробно рассматривается в следующей главе.
Разъяснивший Python
Создание коллекций из выражения-генератора (ч.1)
Передачей готового выражения-генератора присвоенного переменной в функцию создания коллекции.
Разъяснивший Python
Передачей готового выражения-генератора присвоенного переменной в функцию создания коллекции.
Разъяснивший Python
Создание коллекций из выражения-генератора (ч.2)
Написание выражения-генератора сразу внутри скобок вызываемой функции создания коллекции.
Разъяснивший Python
Написание выражения-генератора сразу внутри скобок вызываемой функции создания коллекции.
Разъяснивший Python
⚡️Лёгких денег в бизнесе не бывает
❗️ Многие думают: запустил дело — и пошло. Деньги капают, процессы делегированы, жизнь удалась.
А потом внезапно — кассовый разрыв, мёртвая ниша и минус на счёте.
84% бизнесов прогорают именно так — не из-за налогов или конкурентов, а из-за непонимания, как реально работает рынок и банки.
Канал Бизнесовый — про настоящую сторону предпринимательства. Без глянца и псевдоуспеха. Автор разбирает, как мыслить системно, выстраивать процессы и зарабатывать не на хайпе, а на опыте.
Хочешь перестать быть в числе 84%?
Подписывайся — https://news.1rj.ru/str/+cfit7wtolMtkNDhi
❗️ Многие думают: запустил дело — и пошло. Деньги капают, процессы делегированы, жизнь удалась.
А потом внезапно — кассовый разрыв, мёртвая ниша и минус на счёте.
84% бизнесов прогорают именно так — не из-за налогов или конкурентов, а из-за непонимания, как реально работает рынок и банки.
Канал Бизнесовый — про настоящую сторону предпринимательства. Без глянца и псевдоуспеха. Автор разбирает, как мыслить системно, выстраивать процессы и зарабатывать не на хайпе, а на опыте.
Хочешь перестать быть в числе 84%?
Подписывайся — https://news.1rj.ru/str/+cfit7wtolMtkNDhi
Укрощение монстров: мониторинг и управление ресурсоемкими запросами в Django + PostgreSQL
Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.
Читать...
Разъяснивший Python
Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.
Читать...
Разъяснивший Python
Библиотека программиста
👾🔍 Укрощение монстров: мониторинг и управление ресурсоемкими запросами в Django + PostgreSQL
Практическое руководство по мониторингу и оптимизации сложных SQL-запросов в Django с помощью django-pgactivity. Узнайте, как выявлять и устранять проблемы производительности PostgreSQL.
abc.ABCMeta
Класс
Разъяснивший Python
Класс
abc.ABCMeta из модуля abc используется для создания абстрактных базовых классов (Abstract Base Classes). Это позволяет определить методы, которые должны быть реализованы в подклассах, и предотвращает создание экземпляров базового класса.Разъяснивший Python
Генерация строк
Для создания строки вместо синтаксиса выражений-генераторов используется метод строки .join(), которому в качестве аргументов можно передать выражение генератор.
Обратите внимание: элементы коллекции для объединения в строку должны быть строками!
Разъяснивший Python
Для создания строки вместо синтаксиса выражений-генераторов используется метод строки .join(), которому в качестве аргументов можно передать выражение генератор.
Обратите внимание: элементы коллекции для объединения в строку должны быть строками!
Разъяснивший Python
Измеряем время выполнения кода одной строкой
Иногда нужно быстро понять, сколько времени занимает выполнение участка кода. Можно сделать это без дополнительных библиотек.
Итог:
Используйте
Разъяснивший Python
Иногда нужно быстро понять, сколько времени занимает выполнение участка кода. Можно сделать это без дополнительных библиотек.
Итог:
Используйте
time.perf_counter() для точного измерения времени выполнения кода — он лучше подходит для микробенчмарков, чем time.time().Разъяснивший Python
Перебор части итерируемого.
Иногда бывает задача из очень большой коллекции или даже бесконечного генератора получить выборку первых нескольких элементов, удовлетворяющих условию.
Если мы используем обычное генераторное выражение с условием ограничением по enumerate() индексу или срез полученной результирующей коллекции, то нам в любом случае придется пройти всю огромную коллекцию и потратить на это уйму компьютерных ресурсов.
Выходом может быть использование функции islice() из пакета itertools.
Разъяснивший Python
Иногда бывает задача из очень большой коллекции или даже бесконечного генератора получить выборку первых нескольких элементов, удовлетворяющих условию.
Если мы используем обычное генераторное выражение с условием ограничением по enumerate() индексу или срез полученной результирующей коллекции, то нам в любом случае придется пройти всю огромную коллекцию и потратить на это уйму компьютерных ресурсов.
Выходом может быть использование функции islice() из пакета itertools.
Разъяснивший Python
Вложенный генератор внутри генератора — двумерная из двух одномерных
Общий синтаксис: [[expression for y in iter2] for x in iter1]
Применение: генерируем двумерную структуру, используя данные из двух одномерных итераторов.
Разъяснивший Python
Общий синтаксис: [[expression for y in iter2] for x in iter1]
Применение: генерируем двумерную структуру, используя данные из двух одномерных итераторов.
Разъяснивший Python
Состояние производительности Python 3.13: Free-Threading
Статья посвящена новому free-threaded режиму в CPython 3.13, который открывает возможности параллельного выполнения потоков. Рассматриваются особенности его использования и влияние на производительность.
Читать...
Разъяснивший Python
Статья посвящена новому free-threaded режиму в CPython 3.13, который открывает возможности параллельного выполнения потоков. Рассматриваются особенности его использования и влияние на производительность.
Читать...
Разъяснивший Python
Хабр
Состояние производительности Python 3.13: Free-Threading
CPython 3.13 был выпущен две недели назад (п.п. относительно оригинальной публикации) и стал одним из наиболее сфокусированных на производительности релизов за последнее время....
Генератор итерирующийся по генератору
Так как любой генератор может использоваться как итератор в цикле for, это так же можно использовать и для создания генератора по генератору.
При этом синтаксически это может записываться в два выражения или объединяться во вложенный генератор.
Разъяснивший Python
Так как любой генератор может использоваться как итератор в цикле for, это так же можно использовать и для создания генератора по генератору.
При этом синтаксически это может записываться в два выражения или объединяться во вложенный генератор.
Разъяснивший Python
Вложенный генератор внутри генератора — двумерная из двумерной
Общий синтаксис: [[expression for y in x] for x in iterator]
Применение: Обходим двумерную структуру данных, сохраняя результат в другую двумерную структуру.
Разъяснивший Python
Общий синтаксис: [[expression for y in x] for x in iterator]
Применение: Обходим двумерную структуру данных, сохраняя результат в другую двумерную структуру.
Разъяснивший Python
Ф-строки рулят. F-Strings, форматирование
Современный питонист должен знать и использовать только f-strings, они модные, молодежные, удобные. Все старые форматы должны умереть, но к сожалению, выживают за счет старых туториалов и слепого копипаста новичков.
Смотреть...
Разъяснивший Python
Современный питонист должен знать и использовать только f-strings, они модные, молодежные, удобные. Все старые форматы должны умереть, но к сожалению, выживают за счет старых туториалов и слепого копипаста новичков.
Смотреть...
Разъяснивший Python
YouTube
Ф-строки рулят. F-Strings, форматирование
Современный питонист должен знать и использовать только f-strings, они модные, молодежные, удобные. Все старые форматы должны умереть, но к сожалению, выживают за счет старых туториалов и слепого копипаста новичков. Постоянно вижу код тех же телеграм ботов…
Оператор морж (:=) или способ записывать данные в переменную о котором вы не знали
Начиная с Python 3.8, появился новый синтаксис под названием «оператор морж» или walrus operator, который может присваивать значения переменным как часть более крупного выражения.
Оператор := получил свое милое название из-за глаз и бивней моржа.
Разъяснивший Python
Начиная с Python 3.8, появился новый синтаксис под названием «оператор морж» или walrus operator, который может присваивать значения переменным как часть более крупного выражения.
Оператор := получил свое милое название из-за глаз и бивней моржа.
Разъяснивший Python
Антипаттерн недели: Неоптимальная фильтрация данных через циклы
Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.
Используйте встроенные функции, такие как
Разъяснивший Python
Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.
Используйте встроенные функции, такие как
filter() или list comprehension, чтобы сделать код более читаемым и производительным.Разъяснивший Python
❤1👎1
Ассемблер и Python - Дао общих интересов
Возможности и практическое применение Python совместно с другими языками программирования - это Дао Python. Ассемблер и Python - самые не совместимые на первый взгляд вещи. Но так ли это?
Смотреть...
Разъяснивший Python
Возможности и практическое применение Python совместно с другими языками программирования - это Дао Python. Ассемблер и Python - самые не совместимые на первый взгляд вещи. Но так ли это?
Смотреть...
Разъяснивший Python
YouTube
Ассемблер и Python - Дао общих интересов
Возможности и практическое применение Python совместно с другими языками программирования - это Дао Python .
Ассемблер и Python - самые не совместимые на первый взгляд вещи. Но так ли это?
Открываем новую рубрику для хакеров. Теперь к Ассемблеру, C и C++…
Ассемблер и Python - самые не совместимые на первый взгляд вещи. Но так ли это?
Открываем новую рубрику для хакеров. Теперь к Ассемблеру, C и C++…
❤1
Избегайте вложенных циклов с помощью product
Когда программа становится сложной, неизбежно приходится писать вложенные циклы. Однако вложенные циклы делают программы более сложными для чтения и сопровождения.
К счастью, в Python всегда можно избежать вложенных циклов с помощью встроенной функции
Разъяснивший Python
Когда программа становится сложной, неизбежно приходится писать вложенные циклы. Однако вложенные циклы делают программы более сложными для чтения и сопровождения.
К счастью, в Python всегда можно избежать вложенных циклов с помощью встроенной функции
product().Разъяснивший Python