Измеряем время выполнения кода с помощью contextmanager
Чтобы быстро измерить производительность участка кода, можно создать простой контекстный менеджер.
Итог:
Контекстный менеджер делает измерение времени элегантным и удобным — особенно при профилировании кода
Разъяснивший Python
Чтобы быстро измерить производительность участка кода, можно создать простой контекстный менеджер.
Итог:
Контекстный менеджер делает измерение времени элегантным и удобным — особенно при профилировании кода
Разъяснивший Python
Методы списка .sort() и .reverse()
У списка (и только у него) есть особые методы .sort() и .reverse() которые делают тоже самое, что соответствующие функции sorted() и reversed(), но при этом:
Меняют сам исходный список, а не генерируют новый.
Возвращают None, а не новый список.
Поддерживают те же дополнительные аргументы;
Разъяснивший Python
У списка (и только у него) есть особые методы .sort() и .reverse() которые делают тоже самое, что соответствующие функции sorted() и reversed(), но при этом:
Меняют сам исходный список, а не генерируют новый.
Возвращают None, а не новый список.
Поддерживают те же дополнительные аргументы;
Разъяснивший Python
Устойчивость сортировки
Допустим данные нужно отсортировать сначала по столбцу А по возрастанию, затем по столбцу B по убыванию, и наконец по столбцу C снова по возрастанию.
Если данные в столбце B числовые, то при помощи подходящей функции в key можно поменять знак у элементов B, что приведёт к необходимому результату.
А если все данные текстовые? Тут есть такая возможность.
Дело в том, что сортировка sort в Python устойчивая (начиная с Python 2.2), то есть она не меняет порядок «одинаковых» элементов.
Поэтому можно просто отсортировать три раза по разным ключам.
Разъяснивший Python
Допустим данные нужно отсортировать сначала по столбцу А по возрастанию, затем по столбцу B по убыванию, и наконец по столбцу C снова по возрастанию.
Если данные в столбце B числовые, то при помощи подходящей функции в key можно поменять знак у элементов B, что приведёт к необходимому результату.
А если все данные текстовые? Тут есть такая возможность.
Дело в том, что сортировка sort в Python устойчивая (начиная с Python 2.2), то есть она не меняет порядок «одинаковых» элементов.
Поэтому можно просто отсортировать три раза по разным ключам.
Разъяснивший Python
Дополнительная информация по использованию параметра key при сортировке
Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.
Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.
Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.
Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.
Разъяснивший Python
Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.
Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.
Перед тем, как сравнивать два элемента списка к ним применялась функция prepare_item, которая меняла знак у стоимости (функция применяется ровно по одному разу к каждому элементу. В результате при одинаковом первом значении сортировка по второму происходила в обратном порядке.
Чтобы не плодить утилитарные функции, вместо использования сторонней функции, того же эффекта можно добиться с использованием лямбда-функции.
Разъяснивший Python
В 2025 году на кодинге уже не вывезешь, перспектива года - Информационная Безопасность.
Ловите полезные каналы, которые помогут ворваться в новое направление.
Please open Telegram to view this post
VIEW IN TELEGRAM
Объединение строк, кортежей, списков, словарей без изменения исходных (ч.1)
Рассмотрим способы объединения строк, кортежей, списков, словарей без изменения исходных коллекций — когда из нескольких коллекций создаётся новая коллекция того же тип без изменения изначальных.
Объединение строк (string) и кортежей (tuple) возможна с использованием оператора сложения «+»
Разъяснивший Python
Рассмотрим способы объединения строк, кортежей, списков, словарей без изменения исходных коллекций — когда из нескольких коллекций создаётся новая коллекция того же тип без изменения изначальных.
Объединение строк (string) и кортежей (tuple) возможна с использованием оператора сложения «+»
Разъяснивший Python
Объединение строк, кортежей, списков, словарей без изменения исходных (ч.2)
Для объединения списков (list) возможны три варианта без изменения исходного списка:
Добавляем все элементы второго списка к элементам первого, (аналог метод .extend() но без изменения исходного списка)
Разъяснивший Python
Для объединения списков (list) возможны три варианта без изменения исходного списка:
Добавляем все элементы второго списка к элементам первого, (аналог метод .extend() но без изменения исходного списка)
Разъяснивший Python
Улучшение работы со строками
Конкатенация строк через
Проблема: При конкатенации строк через
Решение: Используйте
Разъяснивший Python
Конкатенация строк через
+ в цикле создаёт множество временных объектов, что замедляет выполнение программы. Вместо этого используйте join().Проблема: При конкатенации строк через
+ создаётся новый объект строки на каждом шаге.Решение: Используйте
str.join(), который работает быстрее, так как заранее выделяет память для итоговой строки.Разъяснивший Python
Объединение строк, кортежей, списков, словарей без изменения исходных (ч.3)
Добавляем второй список как один элемент без изменения исходного списка (аналог метода.append() но без изменения исходного списка)
Разъяснивший Python
Добавляем второй список как один элемент без изменения исходного списка (аналог метода.append() но без изменения исходного списка)
Разъяснивший Python
Объединение строк, кортежей, списков, словарей без изменения исходных (ч.4)
Со словарем (dict) все не совсем просто.
Сложить два словаря чтобы получить третий оператором + Питон не позволяет «TypeError: unsupported operand type(s) for +: 'dict' and 'dict'».
Это можно сделать по-другому комбинируя методы .copy() и .update()
Разъяснивший Python
Со словарем (dict) все не совсем просто.
Сложить два словаря чтобы получить третий оператором + Питон не позволяет «TypeError: unsupported operand type(s) for +: 'dict' and 'dict'».
Это можно сделать по-другому комбинируя методы .copy() и .update()
Разъяснивший Python
Объединение множеств без изменения исходных
Для обоих типов множеств (set, frozenset) возможны различные варианты комбинации множеств (исходные множества при этом не меняются — возвращается новое множество).
Разъяснивший Python
Для обоих типов множеств (set, frozenset) возможны различные варианты комбинации множеств (исходные множества при этом не меняются — возвращается новое множество).
Разъяснивший Python
Объединение списка, словаря и изменяемого множества с изменением исходной коллекции (ч.1)
Для списка. Добавляем все элементы второго списка к элементам первого с измением первого списка методом .extend()
Разъяснивший Python
Для списка. Добавляем все элементы второго списка к элементам первого с измением первого списка методом .extend()
Разъяснивший Python
Объединение списка, словаря и изменяемого множества с изменением исходной коллекции (ч.2)
Для изменения словаря с добавления элементов другого словаря используется метод .update().
Обратите внимание: для совпадающих ключей словаря при этом обновляются значения.
Разъяснивший Python
Для изменения словаря с добавления элементов другого словаря используется метод .update().
Обратите внимание: для совпадающих ключей словаря при этом обновляются значения.
Разъяснивший Python
Модуль array: Операции с массивами
array поддерживает уже знакомые нам операции списков: добавление, удаление, изменение, срезы и многое другое. Также можно преобразовать массив в список и обратно. На картинке мы продемонстрировали все основные операции, а также прикрепляем ссылку на рабочий код.
Ссылка на код
Разъяснивший Python
array поддерживает уже знакомые нам операции списков: добавление, удаление, изменение, срезы и многое другое. Также можно преобразовать массив в список и обратно. На картинке мы продемонстрировали все основные операции, а также прикрепляем ссылку на рабочий код.
Ссылка на код
Разъяснивший Python
👍1
Объединение списка, словаря и изменяемого множества с изменением исходной коллекции (ч.3)
Для изменяемого множества (set) кроме операций, описанных в предыдущем разделе, также возможны их аналоги, но уже с изменением исходного множества — эти методы заканчиваются на _update. Результат зависит от того, какое множество каким обновляем.
Разъяснивший Python
Для изменяемого множества (set) кроме операций, описанных в предыдущем разделе, также возможны их аналоги, но уже с изменением исходного множества — эти методы заканчиваются на _update. Результат зависит от того, какое множество каким обновляем.
Разъяснивший Python
Особенности работы с изменяемой и не изменяемой коллекцией (ч.1)
Строка неизменяемая коллекция — если мы ее меняем — мы создаем новый объект!
Разъяснивший Python
Строка неизменяемая коллекция — если мы ее меняем — мы создаем новый объект!
Разъяснивший Python
Особенности работы с изменяемой и не изменяемой коллекцией (ч.2)
Список изменяем и тут надо быть очень внимательным, чтобы не допустить серьезную ошибку! Сравните данный пример с предыдущем примером со строками.
Разъяснивший Python
Список изменяем и тут надо быть очень внимательным, чтобы не допустить серьезную ошибку! Сравните данный пример с предыдущем примером со строками.
Разъяснивший Python
Создание объектов, поддерживающих выражение with
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit
Разъяснивший Python
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit
Разъяснивший Python
Добавляем условие для фильтрации
Важно: Условие проверяется на каждой итерации, и только элементы ему удовлетворяющие идут в обработку в выражении.
Мы можем использовать несколько условий, комбинируя их логическими операторами
Разъяснивший Python
Важно: Условие проверяется на каждой итерации, и только элементы ему удовлетворяющие идут в обработку в выражении.
Мы можем использовать несколько условий, комбинируя их логическими операторами
Разъяснивший Python
Аналоги в виде цикла for и в виде функций
Задачи решаемые с помощью генераторов выражений можно решить и без них. Каждый генератор выражений можно переписать в виде цикла for, но не каждый цикл for можно представить в виде такого выражения.
Разъяснивший Python
Задачи решаемые с помощью генераторов выражений можно решить и без них. Каждый генератор выражений можно переписать в виде цикла for, но не каждый цикл for можно представить в виде такого выражения.
Разъяснивший Python
БЕСПЛАТНЫЙ ХОСТИНГ для TELEGRAM БОТА на PYTHON AIOGRAM
В этом видео мы посмотрим, как можно абсолютно бесплатно выложить на хостинг своего телеграм бота. Мы будем использовать бота для telegram, написанного на библиотеке aiogram. В качестве хостинга возьмем сервис replit.
Смотреть...
Разъяснивший Python
В этом видео мы посмотрим, как можно абсолютно бесплатно выложить на хостинг своего телеграм бота. Мы будем использовать бота для telegram, написанного на библиотеке aiogram. В качестве хостинга возьмем сервис replit.
Смотреть...
Разъяснивший Python
YouTube
БЕСПЛАТНЫЙ ХОСТИНГ для TELEGRAM БОТА на PYTHON AIOGRAM | REPLIT
В этом видео мы посмотрим, как можно абсолютно бесплатно выложить на хостинг своего телеграм бота. Мы будем использовать бота для telegram, написанного на библиотеке aiogram. В качестве хостинга возьмем сервис replit.
Подписывайся на наш телеграм канал!…
Подписывайся на наш телеграм канал!…