📌 Быстрое сравнение объектов через dataclasses
Если тебе нужно сравнивать экземпляры классов по значениям, а не по идентификаторам, используй @dataclass — это избавит от ручной реализации eq.
🎯 Итог
@dataclass не только сокращает шаблонный код, но и позволяет автоматически сравнивать объекты по значению их полей — удобно и читаемо.
Python Academy
Если тебе нужно сравнивать экземпляры классов по значениям, а не по идентификаторам, используй @dataclass — это избавит от ручной реализации eq.
🎯 Итог
@dataclass не только сокращает шаблонный код, но и позволяет автоматически сравнивать объекты по значению их полей — удобно и читаемо.
Python Academy
🤩8🔥7❤2👍1
🧪 Проверка типов во время разработки с typing.assert_type
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.
Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.
🎯 Итог
assert_type помогает быть уверенным, что типы совпадают с ожиданиями, и делает код более безопасным без влияния на производительность.
Python Academy
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.
Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.
🎯 Итог
assert_type помогает быть уверенным, что типы совпадают с ожиданиями, и делает код более безопасным без влияния на производительность.
Python Academy
🤩10👎2👏2🤗2
🧵 Ускорение многозадачности с concurrent.futures.ThreadPoolExecutor
Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.
🎯 Итог
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.
Python Academy
Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.
🎯 Итог
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.
Python Academy
👏9🔥7🤗5🎉3
🧼 Удаление дубликатов из вложенных списков
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
🎯 Итог
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
Python Academy
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
🎯 Итог
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
Python Academy
😁8🤗7🤩3❤2
🧪 Быстрая проверка скорости кода с timeit
Когда нужно узнать, какой из двух подходов быстрее — используй модуль timeit.
🎯 Итог
Используй timeit, чтобы быстро сравнить производительность разных решений. Особенно полезно при выборе между похожими по смыслу, но разными по скорости подходами.
Python Academy
Когда нужно узнать, какой из двух подходов быстрее — используй модуль timeit.
🎯 Итог
Используй timeit, чтобы быстро сравнить производительность разных решений. Особенно полезно при выборе между похожими по смыслу, но разными по скорости подходами.
Python Academy
👏12
🧼 Чистое логирование без print — используй logging
Вместо print() лучше сразу привыкай к модулю logging — он гибкий и профессиональный.
🎯 Итог
Модуль logging — must-have для любого серьезного Python-кода. Он делает отладку и сопровождение кода намного приятнее и чище.
Python Academy
Вместо print() лучше сразу привыкай к модулю logging — он гибкий и профессиональный.
🎯 Итог
Модуль logging — must-have для любого серьезного Python-кода. Он делает отладку и сопровождение кода намного приятнее и чище.
Python Academy
😁9👍7🤩1
🧠 Проверка типов во время разработки — mypy
Пайтон — динамический язык, но ты можешь использовать статическую проверку типов с помощью mypy для улавливания ошибок до запуска кода.
🎯 Итог
mypy помогает ловить ошибки типов на раннем этапе и делает твой код надежнее. Особенно полезен в больших проектах с командами.
Python Academy
Пайтон — динамический язык, но ты можешь использовать статическую проверку типов с помощью mypy для улавливания ошибок до запуска кода.
🎯 Итог
mypy помогает ловить ошибки типов на раннем этапе и делает твой код надежнее. Особенно полезен в больших проектах с командами.
Python Academy
🔥8❤2👏1
🪄 Ускорение сериализации с orjson
Обычный json модуль в Python медленный. Если тебе нужно быстро сериализовать/десериализовать данные — используй orjson, он в разы быстрее и поддерживает datetime из коробки.
🎯 Итог
orjson — отличный выбор, если тебе важна производительность при работе с JSON. Он быстрее стандартного модуля и проще в использовании.
Python Academy
Обычный json модуль в Python медленный. Если тебе нужно быстро сериализовать/десериализовать данные — используй orjson, он в разы быстрее и поддерживает datetime из коробки.
🎯 Итог
orjson — отличный выбор, если тебе важна производительность при работе с JSON. Он быстрее стандартного модуля и проще в использовании.
Python Academy
😁14
🗺 В Нижегородской области зарегистрировано более 132 000 МСП. Наиболее конкурентные сферы региона — торговля, рестораны и услуги.
Всё больше бизнесов сталкиваются с тем, что их ищут на просторах сети, даже если сами компании нацелены на офлайн.
Так, по данным Яндекса, 63% людей изучают информацию в интернете перед покупкой, почти 1/3 пользователей Яндекс Карт заходят в приложение ежедневно, 2/3 - несколько раз в неделю.
С помощью карточки компании и работы с отзывами начинающие предприниматели могут выстроить доверие с клиентами. А еще понять, что востребовано ими в конкретных локациях через Геоаналитику. Так, например, Речной вокзал — в топе по запросам на рестораны и бары.
Об особенностях использования геосервисов нижегородцами для бизнеса пишет Артём Савинов, руководитель проектов в Яндекс Картах.
Python Academy
Всё больше бизнесов сталкиваются с тем, что их ищут на просторах сети, даже если сами компании нацелены на офлайн.
Так, по данным Яндекса, 63% людей изучают информацию в интернете перед покупкой, почти 1/3 пользователей Яндекс Карт заходят в приложение ежедневно, 2/3 - несколько раз в неделю.
С помощью карточки компании и работы с отзывами начинающие предприниматели могут выстроить доверие с клиентами. А еще понять, что востребовано ими в конкретных локациях через Геоаналитику. Так, например, Речной вокзал — в топе по запросам на рестораны и бары.
Об особенностях использования геосервисов нижегородцами для бизнеса пишет Артём Савинов, руководитель проектов в Яндекс Картах.
Python Academy
🔥12
Объединение списка строк в одну строку
Метод
Плюсы: ✔ Быстрее и эффективнее, чем перебор в цикле ✔ Гибкость: можно выбрать любой разделитель (например,
Осторожно: ❌ Все элементы списка должны быть строками, иначе будет ошибка.
Python Academy
Метод
.join() объединяет элементы списка в одну строку, используя заданный разделитель (в примере — пробел " ").Плюсы: ✔ Быстрее и эффективнее, чем перебор в цикле ✔ Гибкость: можно выбрать любой разделитель (например,
",".join() для CSV)Осторожно: ❌ Все элементы списка должны быть строками, иначе будет ошибка.
Python Academy
❤7
🧼 Безопасное удаление ключа из словаря
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
🎯 Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
Python Academy
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
🎯 Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
Python Academy
👍13
🧊 Безопасное извлечение значений из словаря
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
🎯 Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
Python Academy
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
🎯 Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
Python Academy
🤩4❤2🤗2🎉1
🛑 Прерывание цикла for с else
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
🎯 Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
Python Academy
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
🎯 Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
Python Academy
🎉7
🧊 setdefault() для упрощения работы со словарями
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
🎯 Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
Python Academy
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
🎯 Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
Python Academy
😁6🤩5🤗2❤1
🐍 Как элегантно "перевернуть" словарь
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
🎯 Итог
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
Python Academy
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
🎯 Итог
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
Python Academy
🤗6
Использование list comprehension для фильтрации и преобразования данных
List comprehension в Python предоставляет лаконичный способ создания списков, позволяя не только итерировать, но и фильтровать и преобразовывать данные в одной строке. Это улучшает читаемость кода и уменьшает его объем.
Использование list comprehension позволяет создавать списки с фильтрацией и преобразованием данных в одной строке, что делает код более лаконичным, эффективным и удобочитаемым.
Python Academy
List comprehension в Python предоставляет лаконичный способ создания списков, позволяя не только итерировать, но и фильтровать и преобразовывать данные в одной строке. Это улучшает читаемость кода и уменьшает его объем.
Использование list comprehension позволяет создавать списки с фильтрацией и преобразованием данных в одной строке, что делает код более лаконичным, эффективным и удобочитаемым.
Python Academy
👏3🎉3❤1🤗1
🧭 **Как задать тайм-аут для любой функции**
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
🎯 Итог
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
Python Academy
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
🎯 Итог
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
Python Academy
😁5🔥2
**👀 Подсмотреть, как работают бэкендеры в прямом эфире**
5 июля пройдет Яндекс 2718 — разбор сложных архитектурных задач с участием топовых разработчиков Яндекса.
Как это работает:
— участники предлагают задачи по проектированию backend-сервисов;
— эксперты выбирают самые интересные и нетривиальные кейсы;
— разработчики из Карт, Поиска, Автономного транспорта и Рекламы решают их в прямом эфире.
Чтобы попасть на эфир нужно посмотреть требования к задачам и отправить свою. Авторы принятых вариантов получат приглашение приехать на эфир лично или подключиться онлайн. А еще можно зарегистрироваться и прийти на трансляцию за вдохновением. Все о задачах и регистрации — [здесь.](https://cutt.ly/8rWN2n5B)
Python Academy
5 июля пройдет Яндекс 2718 — разбор сложных архитектурных задач с участием топовых разработчиков Яндекса.
Как это работает:
— участники предлагают задачи по проектированию backend-сервисов;
— эксперты выбирают самые интересные и нетривиальные кейсы;
— разработчики из Карт, Поиска, Автономного транспорта и Рекламы решают их в прямом эфире.
Чтобы попасть на эфир нужно посмотреть требования к задачам и отправить свою. Авторы принятых вариантов получат приглашение приехать на эфир лично или подключиться онлайн. А еще можно зарегистрироваться и прийти на трансляцию за вдохновением. Все о задачах и регистрации — [здесь.](https://cutt.ly/8rWN2n5B)
Python Academy
❤3👍3
**Использование defaultdict для работы со словарями**
При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.
Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
Python Academy
При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.
Использование defaultdict упрощает код и избавляет от необходимости вручную проверять существование ключей в словаре, делая его более читаемым и эффективным.
Python Academy
❤9🤗4🤩2
🧼 Удаление дубликатов, сохраняя порядок
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
🎯 Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
Python Academy
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
🎯 Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
Python Academy
👍7😁6🤗5