👌 Что умеют множества (set) в Python
1️⃣ Множество ≠ список
🔢 Нет дубликатов.
🔢 Порядок не гарантирован.
🔢 Быстро добавлять / удалять / проверять наличие элемента.
2️⃣ «Словарь без значений»
Вместо словаря вида
используйте множество:
Дубликаты исчезнут, а кода станет меньше.
3️⃣ Молниеносная проверка «есть ли элемент»
Преобразование списка в
4️⃣ Сет‑арифметика одним символом
Когда нужно узнать общие или уникальные элементы двух коллекций — множества решают задачу одной строкой.
5️⃣ Конвертируем «на ходу»
Нужно сохранить порядок, но иногда делать быстрые проверки?
Создаём
6️⃣ Мгновенная проверка дубликатов
Одна строка — и вы знаете, есть ли повторения.
Когда выбирать set:
1. Убрать дубликаты, если порядок не важен.
2. Быстро проверить «есть ли элемент».
3. Сравнить коллекции с помощью
4. Проверить уникальность элементов списка.
Библиотека питониста #буст
fruits = {"apples", "strawberries", "pears", "apples"}
print(fruits) # {'apples', 'pears', 'strawberries'}
Вместо словаря вида
colors = {"red": None, "green": None, "blue": None}
используйте множество:
colors = {"red", "green", "blue"}
Дубликаты исчезнут, а кода станет меньше.
numbers = [int(n) for n in open("numbers.txt")]
numbers_set = set(numbers) # создание множества
no_neighbors = [
n for n in numbers
if n-1 not in numbers_set and n+1 not in numbers_set
]
Преобразование списка в
set
резко ускорит поиск (O(1) вместо O(n)).a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
a | b # объединение → {1, 2, 3, 4, 5, 6}
a & b # пересечение → {3, 4}
a - b # только в a → {1, 2}
a ^ b # в одном, но не в двух → {1, 2, 5, 6}
Когда нужно узнать общие или уникальные элементы двух коллекций — множества решают задачу одной строкой.
Нужно сохранить порядок, но иногда делать быстрые проверки?
words = open("words.txt").read().split()
word_set = set(words)
anadromes = [w for w in words if w[::-1] in word_set]
Создаём
set
ради быстрых проверок, но сами данные храним в списке.nums = [1, 2, 3, 2]
has_dupes = len(nums) != len(set(nums)) # True
Одна строка — и вы знаете, есть ли повторения.
Когда выбирать set:
1. Убрать дубликаты, если порядок не важен.
2. Быстро проверить «есть ли элемент».
3. Сравнить коллекции с помощью
| & - ^
.4. Проверить уникальность элементов списка.
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 «Поиграйся с LLM, почитай про агентов — и сам поймёшь, как это работает»
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:LASTCALL на 10.000₽
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:
🎥 Что посмотреть: DjangoCon Europe 2025
Работаете с Django? Тогда это must-watch.
Организаторы уже выложили видео с докладами — и там много интересного:
✅ архитектура, async, PostgreSQL, security, AI-интеграции, DX и многое другое.
🎙 Выступления — от core-разработчиков и крупных команд. Много живых кейсов, best practices и идей для прокачки проектов.
Все видео доступны по ссылке: https://clc.to/xEkXFQ
Библиотека питониста #буст
Работаете с Django? Тогда это must-watch.
Организаторы уже выложили видео с докладами — и там много интересного:
🎙 Выступления — от core-разработчиков и крупных команд. Много живых кейсов, best practices и идей для прокачки проектов.
Все видео доступны по ссылке: https://clc.to/xEkXFQ
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😤 Пока вы думаете — остальные уже учатся строить системы, которые работают за них
⚡24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены!
Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии.
Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку».
➡️ Что вы потеряете, если не впишетесь:
— навык, который уже востребован на рынке
— понимание, как из GPT сделать полноценного помощника, агента или продукт
— шанс догнать тех, кто уже перешёл на следующий уровень
📌 Курс стартует уже завтра
— 5 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно
Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.
❗Старт уже завтра — забронируйте место на курсе сейчас
⚡24 часа до старта курса по AI-агентам. Самое время задуматься о прокачке скиллов, потому что места ограничены!
Если вы до сих пор думаете, что LLM — это просто «вызов через API», то вы рискуете очень скоро оказаться за бортом индустрии.
Модели больше не в центре. Решают те, кто умеет собирать интеллектуальные системы, а не просто «дообучать модельку».
➡️ Что вы потеряете, если не впишетесь:
— навык, который уже востребован на рынке
— понимание, как из GPT сделать полноценного помощника, агента или продукт
— шанс догнать тех, кто уже перешёл на следующий уровень
📌 Курс стартует уже завтра
— 5 вебинаров, живая практика, код, разборы, продовые кейсы
— без «посмотрите статью», только то, что реально нужно
Спикеры: Никита Зелинский (МТС), Диана Павликова, Макс Пташник, Дима Фомин — те, кто реально собирает агентные системы, а не просто про них пишет.
❗Старт уже завтра — забронируйте место на курсе сейчас
🧠 Почему алгоритмы — это не только теория, а ключ к быстрым приложениям
Многие думают, что спортивное программирование — это абстрактные задачки, далекие от реальности. Но на практике именно это мышление помогает находить решения, которые ускоряют приложения в десятки и сотни раз.
🔍 В статье:
— Как смена одного алгоритма может устранить «тормоза»
— Почему привычка оценивать сложность сразу окупается
— Что такое Trie, префиксные суммы, LRU — и как они спасают прод
— Почему «измеряй, а не гадай» — главный принцип для продакшена
👇 Если вы хотите писать быстрый код, не только рабочий — читайте:
https://proglib.io/sh/BZ6EzqDbaW
Библиотека питониста #буст
Многие думают, что спортивное программирование — это абстрактные задачки, далекие от реальности. Но на практике именно это мышление помогает находить решения, которые ускоряют приложения в десятки и сотни раз.
🔍 В статье:
— Как смена одного алгоритма может устранить «тормоза»
— Почему привычка оценивать сложность сразу окупается
— Что такое Trie, префиксные суммы, LRU — и как они спасают прод
— Почему «измеряй, а не гадай» — главный принцип для продакшена
👇 Если вы хотите писать быстрый код, не только рабочий — читайте:
https://proglib.io/sh/BZ6EzqDbaW
Библиотека питониста #буст
🔥 Сегодня стартует курс по AI-агентам!
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
🐒 Monkey patching в Python: спасение или анти-паттерн
Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.
Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.
Когда это бывает полезно:
✅ Патчишь баг в библиотеке, который авторы будут чинить 3 месяца
✅ Легаси-проект: трогать архитектуру нельзя, а фичу сдать надо
✅ Хочешь изменить поведение без вмешательства в исходники
А в чём подвох:
❌ Читаемость кода: новый разработчик ничего не поймёт
❌ Ломает совместимость при апдейтах
❌ Трудно отлаживать и тестировать
❌ Можно выстрелить себе в ногу (и команде тоже)
🔥 Вот теперь холиварный момент
Monkey patching — это:
🔥 — Инструмент сильных, просто надо уметь
❤️ — Костыль, который нельзя нормализовать
😃 — Иногда — единственный способ сделать хорошо
👍 — Признак плохой архитектуры, точка
А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?
Библиотека питониста #междусобойчик
Monkey patching — это когда вы внедряетесь в чужой код прямо во время выполнения программы.
Например:
— переопределяете метод библиотеки без форка,
— меняете поведение фреймворка на лету,
— или «чините» баг, не дожидаясь pull request'а.
Когда это бывает полезно:
А в чём подвох:
🔥 Вот теперь холиварный момент
Monkey patching — это:
🔥 — Инструмент сильных, просто надо уметь
❤️ — Костыль, который нельзя нормализовать
😃 — Иногда — единственный способ сделать хорошо
👍 — Признак плохой архитектуры, точка
А вы использовали monkey patching в проде?
👇 Расскажите в комментах — чем закончилось и стоило ли оно того?
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот что появилось или обновилось за последние 7 дней в экосистеме Python:
📍 Релизы
📦 Data, ML, AI, Agents
🧩 Инфраструктура, парсинг, работа с файлами
🧪 Автоматизация, тестирование, Web, BLE
🛠 Разработка серверов и аналитики
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Data Science | тесты, код, задания
Python Разработчик — от 250 000 до 280 000₽, удалёнка
SDET Python (KLDFS), удалёнка
Python-разработчик — до 1 800 $, удалёнка
Python разработчик — от 1500 до 3000 $, удалёнка
Senior Python Developer (Analytics) — от 300 000 до 400 000 ₽, удалёнка
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
Шпаргалка: типизированные структуры данных в Python
Python поддерживает типизацию с помощью аннотаций, а также предоставляет удобные инструменты для описания структур — TypedDict и dataclasses.
🆖 Typed Dictionaries (Типизированные словари)
TypedDict похож на обычный словарь, но с подсказками типов для ключей и значений. Это помогает задать чёткие ожидания, какие ключи и значения должны быть в словаре.
Пример:
🆖 Dataclasses (Датаклассы)
Датаклассы упрощают создание классов с данными, автоматически генерируя методы вроде
Пример:
🆖 Вложенные структуры
Типизированные словари и датаклассы можно вкладывать друг в друга, чтобы описать сложные структуры данных.
Пример:
Важные советы:
🔛 Не увлекайтесь глубокой вложенностью! Слишком сложные структуры затрудняют поддержку и понимание.
🔛 Используйте типы для самодокументирования кода. Они помогают избежать ошибок и ускоряют разработку.
🔛 Выбирайте TypedDict, если хотите словарь с проверкой структуры.
🔛 Используйте dataclasses, когда нужна полноценная структура с методами и возможностью наследования.
Библиотека питониста #буст
Python поддерживает типизацию с помощью аннотаций, а также предоставляет удобные инструменты для описания структур — TypedDict и dataclasses.
TypedDict похож на обычный словарь, но с подсказками типов для ключей и значений. Это помогает задать чёткие ожидания, какие ключи и значения должны быть в словаре.
Пример:
from typing import TypedDict
class Metrics(TypedDict):
accuracy: float
precision: float
recall: float
AUC: float | None # необязательное поле
def evaluate_predictions(y_true: np.ndarray, y_pred: np.ndarray) -> Metrics:
# Возвращаем словарь с метриками
return Metrics(accuracy=0.66, precision=1.0, recall=0.5)
my_metrics = evaluate_predictions(y_true, y_pred)
print(my_metrics) # {'accuracy': 0.66, 'precision': 1.0, 'recall': 0.5}
Датаклассы упрощают создание классов с данными, автоматически генерируя методы вроде
__init__
. Можно сделать объекты неизменяемыми с frozen=True
.Пример:
from dataclasses import dataclass
@dataclass(frozen=True)
class ModelConfig:
model_path: str
data_path: str
batch_size: int = 32
learning_rate: float = 1e-3
num_epochs: int = 10
early_stopping: bool = False
config = ModelConfig(model_path="models/v1", data_path="data/train", batch_size=64)
print(config.batch_size) # 64
Типизированные словари и датаклассы можно вкладывать друг в друга, чтобы описать сложные структуры данных.
Пример:
from datetime import datetime
@dataclass
class ExperimentSummary:
datetime: datetime
model_config: ModelConfig
metrics: Metrics
experiment = ExperimentSummary(datetime=datetime.now(), model_config=config, metrics=my_metrics)
print(experiment.model_config.batch_size) # 64
Важные советы:
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM