При обработке событий нужно хранить идентификаторы пользователей, которых уже видели, чтобы быстро проверять user_id in seen и не хранить дубликаты. Что лучше использовать для seen?

Alist: упорядоченная коллекция с дубликатами и линейной по размеру проверкой in
Btuple: неизменяемый кортеж для фиксированных пар без поддержки добавления элементов
Cdict: коллекция пар ключ → значение с возможностью хранить рядом с ключом данные
Dset: коллекция уникальных элементов с константной в среднем проверкой in через хеш
Правильный ответ. set хранит уникальные элементы и обеспечивает быструю проверку x in s за счёт хеш-таблицы под капотом.

Разбор

list и tuple допускают дубликаты и обычно используются, когда важен порядок элементов; проверка in у них линейная по размеру коллекции. dict нужен, когда рядом с ключом хранится значение. Для задачи «видели ли уже этот идентификатор» и дедупликации чаще всего выбирают set — он автоматически отбрасывает повторы и даёт почти константный поиск.

Проверь себя · 1/3разбор после ответа
Есть словарь настроек config = {"timeout": 5, "retries": 2} и словарь переопределений override = {"timeout": 10}. Как обновить config, чтобы применить переопределения и сохранить остальные ключи?
Тренировать Python в Telegram

Ещё вопросы по теме «Коллекции и структуры данных»