【问题标题】:Python: what happens to memory when deleting a list element?Python:删除列表元素时内存会发生什么?
【发布时间】: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


【解决方案1】:

python list 上的del 用作切片函数,它可以从列表中切片子列表或删除整个列表。

del 操作列表引用更新后。

更多信息请阅读link

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多