【发布时间】:2021-08-23 01:14:07
【问题描述】:
关于存储列表,Python 似乎在内存中的连续空间中存储了对列表元素的引用列表。当我删除一个元素时,例如del[5],Python是否会将删除后的所有引用移动到内存中的前一个插槽?
【问题讨论】:
-
这是依赖于实现的,并且在一个对 Python 没有真正意义的层面上思考。想知道这一点不会帮助您编写更好的 Python 代码。
-
我在这里确切地询问实现的想法,但想要一种比深入研究源代码更有效的方法来获得答案。我的目的也不是为了编写更好的 Python 代码,而是为了好奇和获得 Python 背后的一些聪明的想法。
-
你的想法是绝对正确的。 List 是一个连续的引用序列,如果删除一个,则必须移动以下引用。因此,您可以轻松地通过索引直接访问列表的元素。几乎所有语言都有这样的概念。请参阅en.wikipedia.org/wiki/Dynamic_array 了解更多信息。
标签: python list memory-management del