Check

Сложность операций со списком, словарём и множеством

Python Senior Яндекс
Назовите амортизированную асимптотическую сложность основных операций для `list`, `dict` и `set` в Python (поиск, вставка, удаление). В каких случаях `list` оказывается предпочтительнее хеш-структур?
Ответы
Сложности структур
Для `dict`/`set` (хеш-таблица): - поиск по ключу: O(1) амортизированно; - вставка/удаление: O(1) амортизированно. Для `list`: - доступ по индексу: O(1); - поиск по значению: O(n); - вставка/удаление из середины: O(n). `list` предпочтительнее, когда: - важен порядок и частые проходы по всему списку; - структура маленькая и накладные расходы на хеш-таблицу не оправданы; - нужен плотный массив данных (например, для дальнейшей передачи в NumPy).