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