Ответ вслух Junior Коллекции обновлено

Как выбрать коллекцию в Python

Вопрос

Как вы выбираете между list, tuple, set, dict и deque? Приведите пример под каждую.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Сначала думаю, какие операции нужны чаще всего. Если нужна последовательность с доступом по индексу и добавлением в конец, это list: например, список заказов для вывода.

Что должно прозвучать в ответе

  • list: упорядоченная изменяемая коллекция, доступ по индексу

  • tuple: неизменяемая запись, ключ словаря

  • set: уникальность и быстрый `in`

  • dict: поиск по ключу, группировка, кеш

  • deque: очередь, добавление и удаление с обоих концов за O(1)

Что могут спросить следом

  • Какая сложность x in list и x in set?
  • Как посчитать частоту слов в тексте?

Разбор

Образцовый ответ: «Сначала думаю, какие операции нужны чаще всего. Если нужна последовательность с доступом по индексу и добавлением в конец, это list: например, список заказов для вывода. Если это неизменяемая запись из нескольких полей или нужен составной ключ, беру tuple: координата (x, y) как ключ словаря. Если важна уникальность и частые проверки вхождения, set: множество уже обработанных id, проверка in за O(1) вместо O(n) у списка. Если нужен поиск по ключу, группировка или кеш, dict, часто через defaultdict или Counter. А для очереди задач или обхода в ширину deque, потому что pop(0) у списка O(n), а popleft у deque O(1). Ещё deque(maxlen=100) удобно хранит последние 100 событий».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.