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

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

Разбор

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

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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