2017-02-12 83 views
0

对于任意大的N,不可能将所有数据连续存储在内存中。如何知道你是否有Python中的非连续列表?

例如,在Python中,如果我做arr = [0] * N,对于足够大的N,这不能是连续的。

Python为此做了什么?我假设它被非连续存储。这是如何运作的?

回答

1

CPython列表总是连续的,至少在虚拟内存中。 (他们无法合理控制物理连续性,也没有什么理由去尝试。)CPython在内存碎片或类似的事情中不会尝试将列表分割成不连续的段。

如果你想看看你自己,看看Include/listobject.hObjects/listobject.c。关于不连续的列表没有任何内容。