2017-02-12 84 views
0

對於任意大的N,不可能將所有數據連續存儲在內存中。如何知道你是否有Python中的非連續列表?

例如,在Python中,如果我做arr = [0] * N,對於足夠大的N,這不能是連續的。

Python爲此做了什麼?我假設它被非連續存儲。這是如何運作的?

回答

1

CPython列表總是連續的,至少在虛擬內存中。 (他們無法合理控制物理連續性,也沒有什麼理由去嘗試。)CPython在內存碎片或類似的事情中不會嘗試將列表分割成不連續的段。

如果你想看看你自己,看看Include/listobject.hObjects/listobject.c。關於不連續的列表沒有任何內容。