Как Python хранит списки внутри?

Как списки внутри python хранятся внутри? Это массив? Связанный список? Что-то еще?

Или интерпретатор угадывает правильную структуру для каждого экземпляра на основе длины и т.д.

Если вопрос зависит от реализации, как насчет классического CPython?

Ответ 1

from Контейнеры Core Python: под капюшоном
Реализация списка:
Массив указателей с фиксированной длиной
* Когда массив растет или сжимается, вызывает realloc() и, при необходимости, копирует все элементы в новое пространство
исходный код: Include/listobject.h и Objects/listobject.c
btw: вот видео или здесь