Надо знать достоинства и недостатки каждого контейнера и решить какие требования к контейнеру предъявляет конкретная задача (какие операции контейнера будут критичными для конкретной задачи).
1. Массив (не отсортированный)
Плюсы: доступ к элементу по индексу - O(1)
Минусы: произвольный поиск - O(n); вставка, удаление - O(n) требуется перевыделение памяти и копирование всего контейнера
2. Список
Плюсы: вставка - если известно место вставки O(1); удаление - если известен удаляемый элемент O(1)
Минусы: доступ по индексу, произвольный поиск - O(n);
3. Словарь
Может быть внутри реализован как дерево или как хеш-таблица. Как реализованы в питоне стандартный объект не знаю.
3.1. Дерево. Обычно используется какой-то вариант сбалансированных двоичных деревьев поиска (красно-черное и т.п.)
Плюсы: произвольный поиск, вставка, удаление - O(log(n))
Минусы: для обеспечения сбалансированности дерева используются дополнительные "внутренние" операции с деревом, что увеличивает время каждой отдельно взятой операции вставки и удаления. Эти операции обычно достаточно "легкие" и константные по времени.
3.2. Хеш-таблица
Плюсы: произвольный поиск, вставка, удаление - O(1);
Минусы: вставка и удаление могут в некоторых случаях приводить к перевыделению памяти и полному копированию и/или к пересчету хешей в зависимости от реализации.
Как видите, нет универсального 100% подходящего контейнера на все случаи жизни. У всех есть свои плюсы и минусы.