Функция slots
Если вы когда-нибудь писали программы, которые создают по-настоящему большие количества экземпляров некоего класса, то вы могли заметить, что таким программам неожиданно может понадобиться очень много памяти. Происходит это из-за того, что Python использует словари для представления атрибутов экземпляров классов.
Подписывайтесь на канал 👉@pythonofff
Если вы когда-нибудь писали программы, которые создают по-настоящему большие количества экземпляров некоего класса, то вы могли заметить, что таким программам неожиданно может понадобиться очень много памяти. Происходит это из-за того, что Python использует словари для представления атрибутов экземпляров классов.
Подписывайтесь на канал 👉@pythonofff
Оператор объединения словарей
В Python есть много разных способов объединить несколько словарей. Мне, например, больше всего нравилась распаковка словарей в один новый.
Но в одном из последних обновлений добавили специальный оператор |, с помощью которого можно это делать ещё проще.
Подписывайтесь на канал 👉@pythonofff
В Python есть много разных способов объединить несколько словарей. Мне, например, больше всего нравилась распаковка словарей в один новый.
Но в одном из последних обновлений добавили специальный оператор |, с помощью которого можно это делать ещё проще.
Подписывайтесь на канал 👉@pythonofff
Итерация по Списку в Python С Помощью Метода Enumerate
Если вы не знаете, что именно enumerate делает в python, то позвольте мне объяснить вам.Метод enumerate() добавляет счетчик к итерируемому объекту и возвращает его. И что бы ни возвращал метод enumerate, это будет объект enumerate.
Основное преимущество использования метода enumerate заключается в том, что вы можете преобразовать объекты enumerate в list и tuple с помощью методов list() и tuple() соответственно.
Подписывайтесь на канал 👉@pythonofff
Если вы не знаете, что именно enumerate делает в python, то позвольте мне объяснить вам.Метод enumerate() добавляет счетчик к итерируемому объекту и возвращает его. И что бы ни возвращал метод enumerate, это будет объект enumerate.
Основное преимущество использования метода enumerate заключается в том, что вы можете преобразовать объекты enumerate в list и tuple с помощью методов list() и tuple() соответственно.
Подписывайтесь на канал 👉@pythonofff
Частичное применение
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
Подписывайтесь на канал 👉@pythonofff
Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
Подписывайтесь на канал 👉@pythonofff
PiP
Пип это то, что, возможно, большинство людей знают. Но все же это потрясающий материал, который вам нужно знать, если вы начинаете с python. Иногда вам нужно проверить источник пакета перед его установкой. В большинстве случаев это для установки более новой версии какого-либо пакета.
Подписывайтесь на канал 👉@pythonofff
Пип это то, что, возможно, большинство людей знают. Но все же это потрясающий материал, который вам нужно знать, если вы начинаете с python. Иногда вам нужно проверить источник пакета перед его установкой. В большинстве случаев это для установки более новой версии какого-либо пакета.
Подписывайтесь на канал 👉@pythonofff
Вызов программ операционной системы
sh — это полноценный интерфейс, как альтернатива subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция.
Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция which, которая находит полный путь до программы либо возвращает None, если программа не найдена.
Подписывайтесь на канал 👉@pythonofff
sh — это полноценный интерфейс, как альтернатива subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция.
Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция which, которая находит полный путь до программы либо возвращает None, если программа не найдена.
Подписывайтесь на канал 👉@pythonofff
Объединение скриптов Python и Shell
Теперь это то, что вы не можете сделать с C или C ++. Если вы парень с открытым исходным кодом, то вы наверняка используете Linux в качестве основной операционной системы или, по крайней мере, двойную загрузку. Итак, Linux уже включает Python. И python чрезвычайно совместим с Linux. Это дает нам преимущество их компиляции и объединения. Вы можете просто создать сценарий, который может работать как обычный сценарий Unix, а также интерпретируемый код Python одновременно.
Подписывайтесь на канал 👉@pythonofff
Теперь это то, что вы не можете сделать с C или C ++. Если вы парень с открытым исходным кодом, то вы наверняка используете Linux в качестве основной операционной системы или, по крайней мере, двойную загрузку. Итак, Linux уже включает Python. И python чрезвычайно совместим с Linux. Это дает нам преимущество их компиляции и объединения. Вы можете просто создать сценарий, который может работать как обычный сценарий Unix, а также интерпретируемый код Python одновременно.
Подписывайтесь на канал 👉@pythonofff
Находим схожие строки
В стандартной библиотеке Python существует модуль difflib, в котором есть интересный метод get_close_matches. Он позволяет найти в списке строки, похожие на некую исходную.
Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент n, который задаёт максимальное число возвращаемых совпадений.
Подписывайтесь на канал 👉@pythonofff
В стандартной библиотеке Python существует модуль difflib, в котором есть интересный метод get_close_matches. Он позволяет найти в списке строки, похожие на некую исходную.
Этот метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент — список, в котором выполняется поиск.
Также в метод можно передать необязательный аргумент n, который задаёт максимальное число возвращаемых совпадений.
Подписывайтесь на канал 👉@pythonofff
Как найти наиболее частотные элементы с помощью счетчика
Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter.
Counter().most_common([n])
Подписывайтесь на канал 👉@pythonofff
Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter.
Counter().most_common([n])
Подписывайтесь на канал 👉@pythonofff
Аргументы и параметры командной строки
Для обработки передаваемых аргументов и создания удобный интерфейс командной строки в python есть отличный модуль argparse.
Для начала нам нужно создать объект парсера ArgumentParser, в который мы уже сможем добавить аргументы с нужными параметрами с помощью метода add_argument.
Первым параметром add_argument принимает либо имя обязательного позиционного аргумента, либо список опционального аргумента (опциональный аргумент идентифицируется через -). Также у add_argument есть множество необязательных опциональных параметров для работы с передаваемым значением аргумента, о них можете почитать в данной статье.
После добавления всех аргументов, нам нужно их спарсить с помощью метода parse_args, на выходе мы получим объект со всеми содержащимися аргументами.
Подписывайтесь на канал 👉@pythonofff
Для обработки передаваемых аргументов и создания удобный интерфейс командной строки в python есть отличный модуль argparse.
Для начала нам нужно создать объект парсера ArgumentParser, в который мы уже сможем добавить аргументы с нужными параметрами с помощью метода add_argument.
Первым параметром add_argument принимает либо имя обязательного позиционного аргумента, либо список опционального аргумента (опциональный аргумент идентифицируется через -). Также у add_argument есть множество необязательных опциональных параметров для работы с передаваемым значением аргумента, о них можете почитать в данной статье.
После добавления всех аргументов, нам нужно их спарсить с помощью метода parse_args, на выходе мы получим объект со всеми содержащимися аргументами.
Подписывайтесь на канал 👉@pythonofff
Извлечение аудио из видеофайлов
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
Подписывайтесь на канал 👉@pythonofff
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
Подписывайтесь на канал 👉@pythonofff
Методы у словарей
В этом посте поговорим про 3 простых метода у словарей, которые позволяет получить элементы в разном виде.
С помощью метода dict.keys() можно получить ключи словаря в виде списка, dict.values() — то же самое, но со значениями.
А метод dict.items() возвращает список из кортежей, которые содержат ключи и соответствующие значения.
Подписывайтесь на канал 👉@pythonofff
В этом посте поговорим про 3 простых метода у словарей, которые позволяет получить элементы в разном виде.
С помощью метода dict.keys() можно получить ключи словаря в виде списка, dict.values() — то же самое, но со значениями.
А метод dict.items() возвращает список из кортежей, которые содержат ключи и соответствующие значения.
Подписывайтесь на канал 👉@pythonofff
Поиск в Google без открытия браузера
Порой мы так глубоко погружаемся в написание кода, что нам неохота открывать браузер для поиска нужной информации. Установив потрясающую библиотеку google, можно делать запрос в поисковик прямо в консоли.
Подписывайтесь на канал 👉@pythonofff
Порой мы так глубоко погружаемся в написание кода, что нам неохота открывать браузер для поиска нужной информации. Установив потрясающую библиотеку google, можно делать запрос в поисковик прямо в консоли.
Подписывайтесь на канал 👉@pythonofff
Как удалить несколько ключей из словаря Python
Python позволяет легко удалить из словаря не только один определенный ключ, но и несколько. Самый безопасный способ сделать это — перебрать список ключей и использовать метод
Подписывайтесь на канал 👉@pythonofff
Python позволяет легко удалить из словаря не только один определенный ключ, но и несколько. Самый безопасный способ сделать это — перебрать список ключей и использовать метод
.pop()
.Подписывайтесь на канал 👉@pythonofff
3 интересных функции в random
Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего.
Подписывайтесь на канал 👉@pythonofff
Этот пост более для тех, у кого есть соответствующий бэкграунд и кто хочет знать про random больше среднего.
betavariate()
— используется для получения случайного числа с плавающей запятой от 0 до 1 на основе бета-распределения (применяется для статистических расчетов).gauss()
— генерирует случайное число с плавающей запятой на основе распределения Гаусса (используется в теории вероятности).paretovariate()
— возвращает случайное число с плавающей запятой на основе распределения Парето (используется в теории вероятности).Подписывайтесь на канал 👉@pythonofff
Создаем бесконечный итератор
Функция
Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.
Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).
Мы также можем воспользоваться
Подписывайтесь на канал 👉@pythonofff
Функция
cycle()
из itertools
принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.
Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).
Мы также можем воспользоваться
islice()
, который вернет итератор по подмножеству переданного объекта.Подписывайтесь на канал 👉@pythonofff
Получаем список переменных
Функция
С помощью похожей функции
Еще обратите внимание на результат второй функции: там много разных переменных, которые мы явно не объявляли — про некоторые из них скоро расскажем.
Подписывайтесь на канал 👉@pythonofff
Функция
locals()
возвращает словарь переменных из текущего пространства имён. Ключи словаря — названия переменных, а значения — это их значения.С помощью похожей функции
globals()
можно получить все переменные конкретного модуля в таком же виде.Еще обратите внимание на результат второй функции: там много разных переменных, которые мы явно не объявляли — про некоторые из них скоро расскажем.
Подписывайтесь на канал 👉@pythonofff
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой
Эта книга — результат многолетнего опыта построения IT-продуктов. И прежде всего она о том, как выстроить процессы разработки IT-систем таким образом, чтобы успевать вовремя подстроиться под любые изменения.
В её основе — описание работающих практик, примеры из реальных проектов, анализ ошибок и выводы. В книге собраны рекомендации для владельцев бизнеса и разработчиков. Первые приобретут систематизированные знания о том, как правильно взаимодействовать с IT, а вторые — как делать хорошо и не делать плохо.
Сайт издания
Ознакомиться с книгой