Мне не удалось найти источник этой информации, не просматривая сам исходный код Python, чтобы определить, как работают объекты. Кто-нибудь знает, где я могу найти это онлайн?
Где я могу найти сложность времени и пространства встроенных типов последовательностей в Python
Ответ 1
Оформить страницу TimeComplexity на странице py dot org wiki. Он охватывает набор /dicts/lists/etc, по крайней мере, по мере того, как сложность времени идет.
Ответ 2
Раймонд Д. Хеттингер делает отличный разговор (слайды) о встроенных коллекциях Python под названием "Контейнеры Core Python - под капотом". Версия, которую я видел, фокусировалась главным образом на set и dict, но list тоже была покрыта.
Есть также некоторые фотографии соответствующих слайдов из EuroPython в блоге.
Вот краткое изложение моих заметок о list:
- Сохраняет элементы как массив указателей. Стоимость подписки O (1). Прибавьте затраты к амортизации O (1) времени. Ввести затраты O (n).
-  Пытается избегать memcpyпри росте путем чрезмерного распределения. Многие небольшие списки будут тратить много места, но большие списки никогда не теряют больше, чем около 12,5% от общего назначения.
-  Некоторые операции предварительной настройки. Приведенными примерами были range(n),map(),list(),[None] * nи нарезка.
-  При сжатии массив realloced только тогда, когда он тратит 50% пространства.popдешево.
Ответ 3
Если вы спросите, что я думаю о вашем запросе, вы можете найти их Здесь... стр. 476 и далее.
Это написано вокруг методов оптимизации для Python; Это, в основном, Big-O нотация эффективности времени не так много.
