🧊 Словарь с "молчаливыми" значениями — defaultdict
Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.
🎯 Итог
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.
Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.
🎯 Итог
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.
🧪 Проверка аргументов функций — assert как мини-валидация
Иногда нужно быстро проверить корректность аргументов функции. Можно использовать assert для встроенной валидации прямо в начале.
🎯 Итог
assert — быстрый способ «подстелить соломку» и отлавливать очевидные ошибки ещё до выполнения основного тела функции. Особенно полезно в прототипах и тестах.
Иногда нужно быстро проверить корректность аргументов функции. Можно использовать assert для встроенной валидации прямо в начале.
🎯 Итог
assert — быстрый способ «подстелить соломку» и отлавливать очевидные ошибки ещё до выполнения основного тела функции. Особенно полезно в прототипах и тестах.
🧵 Ускорение кода с помощью functools.cache
Когда функция вызывается часто с одними и теми же аргументами (например, при рекурсии), можно использовать кэширование результатов с помощью декоратора @cache.
🎯 Итог
@cache (или @lru_cache) позволяет многократно ускорить повторяющиеся вычисления без изменения логики — просто добавь декоратор.
Когда функция вызывается часто с одними и теми же аргументами (например, при рекурсии), можно использовать кэширование результатов с помощью декоратора @cache.
🎯 Итог
@cache (или @lru_cache) позволяет многократно ускорить повторяющиеся вычисления без изменения логики — просто добавь декоратор.
🛑 Безопасное закрытие ресурсов с contextlib.suppress
Иногда нужно проигнорировать конкретные ошибки, не загромождая код try/except-блоками. contextlib.suppress делает это изящно.
🎯 Итог
contextlib.suppress помогает лаконично и безопасно игнорировать конкретные исключения, не засоряя код лишней обработкой.
Иногда нужно проигнорировать конкретные ошибки, не загромождая код try/except-блоками. contextlib.suppress делает это изящно.
🎯 Итог
contextlib.suppress помогает лаконично и безопасно игнорировать конкретные исключения, не засоряя код лишней обработкой.
🧪 Простое логирование времени выполнения кода с timeit
Нужно быстро узнать, сколько времени занимает участок кода? Не нужно писать таймеры вручную — есть timeit.
🎯 Итог
Модуль timeit — удобный способ измерить производительность кода без лишней возни с time. Особенно полезен при сравнении разных реализаций.
Нужно быстро узнать, сколько времени занимает участок кода? Не нужно писать таймеры вручную — есть timeit.
🎯 Итог
Модуль timeit — удобный способ измерить производительность кода без лишней возни с time. Особенно полезен при сравнении разных реализаций.
🧩 Используй functools.lru_cache для кэширования результатов
Если у тебя есть функция, которую вызывают с одними и теми же аргументами, а её выполнение ресурсоёмкое — можно автоматически кэшировать её результат с помощью lru_cache.
🎯 Итог
lru_cache автоматически сохраняет результаты вызовов функции и экономит ресурсы при повторных вызовах. Особенно полезно для рекурсивных и часто вызываемых функций.
Если у тебя есть функция, которую вызывают с одними и теми же аргументами, а её выполнение ресурсоёмкое — можно автоматически кэшировать её результат с помощью lru_cache.
🎯 Итог
lru_cache автоматически сохраняет результаты вызовов функции и экономит ресурсы при повторных вызовах. Особенно полезно для рекурсивных и часто вызываемых функций.
Если у вас есть смартфон или ПК, вы обязаны знать об этом: всю рекламу на смартфоне можно отключить. Ни на сайтах, ни в приложениях ее не будет.
Вся инфа о том, как это сделать и другая полезная информация о кибер безопасности собрана в Технолавке. Это номер один канал про приватность, слежку в Интернете и способы защититься от нее. Также внутри: секретные фишки соцсетей, малоизвестные сервисы и полезные лайфхаки.
Например, вы знали, что можно в два клика защититься от спама и не выдать свой номер рандомному гику? А с Технолавкой сможете не только это.
Вся инфа о том, как это сделать и другая полезная информация о кибер безопасности собрана в Технолавке. Это номер один канал про приватность, слежку в Интернете и способы защититься от нее. Также внутри: секретные фишки соцсетей, малоизвестные сервисы и полезные лайфхаки.
Например, вы знали, что можно в два клика защититься от спама и не выдать свой номер рандомному гику? А с Технолавкой сможете не только это.
🕵️ Удобный способ подавить ошибки через contextlib.suppress
Иногда нужно игнорировать определённые исключения, не захламляя код try-except. Для этого идеально подходит contextlib.suppress.
🎯 Итог
suppress делает код чище, когда нужно спокойно обойтись без конкретных исключений. Особенно полезно в служебных операциях типа удаления или проверки.
Иногда нужно игнорировать определённые исключения, не захламляя код try-except. Для этого идеально подходит contextlib.suppress.
🎯 Итог
suppress делает код чище, когда нужно спокойно обойтись без конкретных исключений. Особенно полезно в служебных операциях типа удаления или проверки.
📌 Быстрое сравнение объектов через dataclasses
Если тебе нужно сравнивать экземпляры классов по значениям, а не по идентификаторам, используй @dataclass — это избавит от ручной реализации eq.
🎯 Итог
@dataclass не только сокращает шаблонный код, но и позволяет автоматически сравнивать объекты по значению их полей — удобно и читаемо.
Если тебе нужно сравнивать экземпляры классов по значениям, а не по идентификаторам, используй @dataclass — это избавит от ручной реализации eq.
🎯 Итог
@dataclass не только сокращает шаблонный код, но и позволяет автоматически сравнивать объекты по значению их полей — удобно и читаемо.
🧪 Проверка типов во время разработки с typing.assert_type
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.
Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.
🎯 Итог
assert_type помогает быть уверенным, что типы совпадают с ожиданиями, и делает код более безопасным без влияния на производительность.
Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.
Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.
🎯 Итог
assert_type помогает быть уверенным, что типы совпадают с ожиданиями, и делает код более безопасным без влияния на производительность.
🧵 Ускорение многозадачности с concurrent.futures.ThreadPoolExecutor
Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.
🎯 Итог
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.
Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.
🎯 Итог
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.
🧼 Удаление дубликатов из вложенных списков
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
🎯 Итог
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!
🎯 Итог
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.
Изучи любой IT-курс и не только с помощью личного ИИ-наставника, чтобы не тратить сотни тысяч рублей на профессию.
Вместо траты двух лет на обучение в онлайн-университете, используйте современные методы с PAI. Ваш ИИ-наставник составит максимально эффективный и простой для освоения курс на любую тему по вашим запросам.
Почему PAI прокачивает быстрее:
— Слушай теорию как подкаст или листай текстом
— Интерактивные задачи и мини-проекты
— Подстраивается под твой уровень — от новичка до опытного разработчика.
— Хочешь «Парсер сайтов» или «FastAPI для джунов»? Платформа соберёт программу под твой запрос.
— Подписка вместо дорогого курса
Переходи по ссылке, пробуй 3 дня бесплатно и убедись сам!
Реклама. Информация о рекламодателе по ссылкам в посте.
Вместо траты двух лет на обучение в онлайн-университете, используйте современные методы с PAI. Ваш ИИ-наставник составит максимально эффективный и простой для освоения курс на любую тему по вашим запросам.
Почему PAI прокачивает быстрее:
— Слушай теорию как подкаст или листай текстом
— Интерактивные задачи и мини-проекты
— Подстраивается под твой уровень — от новичка до опытного разработчика.
— Хочешь «Парсер сайтов» или «FastAPI для джунов»? Платформа соберёт программу под твой запрос.
— Подписка вместо дорогого курса
Переходи по ссылке, пробуй 3 дня бесплатно и убедись сам!
Реклама. Информация о рекламодателе по ссылкам в посте.
🧠 Проверка типов во время разработки — mypy
Пайтон — динамический язык, но ты можешь использовать статическую проверку типов с помощью mypy для улавливания ошибок до запуска кода.
🎯 Итог
mypy помогает ловить ошибки типов на раннем этапе и делает твой код надежнее. Особенно полезен в больших проектах с командами.
Пайтон — динамический язык, но ты можешь использовать статическую проверку типов с помощью mypy для улавливания ошибок до запуска кода.
🎯 Итог
mypy помогает ловить ошибки типов на раннем этапе и делает твой код надежнее. Особенно полезен в больших проектах с командами.
🔥Data Science — ваш билет в топ-10% IT по зарплатам. Но как войти без ошибок?
Сегодня даже средний бизнес не может обойтись без Data Science — прогнозирование, автоматизация решений, работа с нейросетями. Но чем крупнее компания, тем выше требования... и зарплаты.
Skillfactory запускает бесплатный 3-дневный мини-курс, где вы погрузитесь в реальную работу дата-сайентиста. Вот что вас ждёт:
☑️ День 1: Вы сразу пишете код на Python — не теория, а разбор реального датасета.
☑️ День 2: Строите ML-модель для прогнозирования — такую же, как используют в Сбере и Яндекс.
☑️ День 3: Разбираете ваш персональный сценарий в DS: анализ, ML или инженерия?
Запускайте курс.
🎁 После мини-курса у вас будет 3 проекта в портфолио, и вы получите в подарок: "Гайд «25 нейросетей для работы» (включая ChatGPT и Midjourney)". А также скидку 45% на полный курс, переходите по ссылке и научитесь ТОП-профессии будущего.
Реклама. Информация о рекламодателе по ссылкам в посте.
Сегодня даже средний бизнес не может обойтись без Data Science — прогнозирование, автоматизация решений, работа с нейросетями. Но чем крупнее компания, тем выше требования... и зарплаты.
Skillfactory запускает бесплатный 3-дневный мини-курс, где вы погрузитесь в реальную работу дата-сайентиста. Вот что вас ждёт:
☑️ День 1: Вы сразу пишете код на Python — не теория, а разбор реального датасета.
☑️ День 2: Строите ML-модель для прогнозирования — такую же, как используют в Сбере и Яндекс.
☑️ День 3: Разбираете ваш персональный сценарий в DS: анализ, ML или инженерия?
Запускайте курс.
🎁 После мини-курса у вас будет 3 проекта в портфолио, и вы получите в подарок: "Гайд «25 нейросетей для работы» (включая ChatGPT и Midjourney)". А также скидку 45% на полный курс, переходите по ссылке и научитесь ТОП-профессии будущего.
Реклама. Информация о рекламодателе по ссылкам в посте.
🪄 Ускорение сериализации с orjson
Обычный json модуль в Python медленный. Если тебе нужно быстро сериализовать/десериализовать данные — используй orjson, он в разы быстрее и поддерживает datetime из коробки.
🎯 Итог
orjson — отличный выбор, если тебе важна производительность при работе с JSON. Он быстрее стандартного модуля и проще в использовании.
Обычный json модуль в Python медленный. Если тебе нужно быстро сериализовать/десериализовать данные — используй orjson, он в разы быстрее и поддерживает datetime из коробки.
🎯 Итог
orjson — отличный выбор, если тебе важна производительность при работе с JSON. Он быстрее стандартного модуля и проще в использовании.
Узнай подходящую тебе карьеру за 5 минут.
Онлайн-школа участник проекта "Сколково" создала уникальный инструмент профориентации, который раскроет ваш потенциал. Простой тест с вариантами ответа, менее чем из 20 вопросов.
В конечный результат вошли только самые востребованные профессии для 2025 года, большинство специальностей из сферы IT и Дизайна, именно в них на сегодня наибольшие доходы.
Переходите по специальной ссылке, получите карьерную консультацию в подарок, и разберите индивидуально ваш комфортный переход в новую профессию.
Реклама. Информация о рекламодателе по ссылкам в посте.
Онлайн-школа участник проекта "Сколково" создала уникальный инструмент профориентации, который раскроет ваш потенциал. Простой тест с вариантами ответа, менее чем из 20 вопросов.
В конечный результат вошли только самые востребованные профессии для 2025 года, большинство специальностей из сферы IT и Дизайна, именно в них на сегодня наибольшие доходы.
Переходите по специальной ссылке, получите карьерную консультацию в подарок, и разберите индивидуально ваш комфортный переход в новую профессию.
Реклама. Информация о рекламодателе по ссылкам в посте.
Объединение списка строк в одну строку
Метод
Плюсы: ✔ Быстрее и эффективнее, чем перебор в цикле ✔ Гибкость: можно выбрать любой разделитель (например,
Осторожно: ❌ Все элементы списка должны быть строками, иначе будет ошибка.
Метод
.join()
объединяет элементы списка в одну строку, используя заданный разделитель (в примере — пробел " "
).Плюсы: ✔ Быстрее и эффективнее, чем перебор в цикле ✔ Гибкость: можно выбрать любой разделитель (например,
",".join()
для CSV)Осторожно: ❌ Все элементы списка должны быть строками, иначе будет ошибка.