0
對於任意大的N,不可能將所有數據連續存儲在內存中。如何知道你是否有Python中的非連續列表?
例如,在Python中,如果我做arr = [0] * N,對於足夠大的N,這不能是連續的。
Python爲此做了什麼?我假設它被非連續存儲。這是如何運作的?
對於任意大的N,不可能將所有數據連續存儲在內存中。如何知道你是否有Python中的非連續列表?
例如,在Python中,如果我做arr = [0] * N,對於足夠大的N,這不能是連續的。
Python爲此做了什麼?我假設它被非連續存儲。這是如何運作的?
CPython列表總是連續的,至少在虛擬內存中。 (他們無法合理控制物理連續性,也沒有什麼理由去嘗試。)CPython在內存碎片或類似的事情中不會嘗試將列表分割成不連續的段。
如果你想看看你自己,看看Include/listobject.h
和Objects/listobject.c
。關於不連續的列表沒有任何內容。