2017-02-12 16 views
0

Для сколь угодно большого N невозможно хранить все данные в списке в памяти.Как узнать, есть ли у вас несмежный список в Python?

Например, в Python, если я делаю arr = [0] * N, при достаточно большом N это не может быть смежным.

Что делает Python для этого? Я предполагаю, что он хранится несмежно. Как это работает?

ответ

1

Списки CPython всегда смежны, по крайней мере, в виртуальной памяти. (Мало они могут сделать, чтобы разумно контролировать физическую смежность и небольшую причину попробовать.) CPython не пытается разбить списки на несмежные сегменты перед лицом фрагментации памяти или что-то в этом роде.

Если вы хотите увидеть сами, взгляните на Include/listobject.h и Objects/listobject.c. Там нет ничего о несвязанных списках.