Список в Python реализован в виде массива указателей 1 .Итак, что действительно происходит при создании списка:
["perry", 1, 23.5, "s"]
заключается в том, что вы на самом деле создаете массив указателей, например:
[0xa3d25342, 0x635423fa, 0xff243546, 0x2545fade]
Каждый указатель "указывает" на соответствующийобъекты в памяти, так что строка "perry"
будет храниться по адресу 0xa3d25342
, а число 1
будет храниться по 0x635423fa
и т. д.
Поскольку все указатели имеют одинаковый размер,интерпретатор может фактически добавить 3-кратный размер элемента к адресу li[0]
, чтобы получить указатель, хранящийся в li[3]
.
1 Более подробную информацию можно получить у: рта лошади (исходный код CPython на GitHub) .