如何从内存中完全删除列表项

时间:2018-08-21 10:53:00

标签: python list memory global-variables

我需要一种从内存中完全删除列表项的方法。 关键是,即使一个对象在多个列表中,当我删除它时,它也将不再在任何列表中可用,并且将从内存中完全删除。 我尝试了del,但没有用:

a = [Object(), Object()]
b = a[1]
del a[1]

但是a [1]的值仍在内存中,b!=无

如何将其从内存中完全删除?

1 个答案:

答案 0 :(得分:-1)

在Python中,赋值运算符将右侧表达式的结果绑定到左侧表达式的名称。

因此,当您定义此内容

a = [Object(), Object()]
b = a[1]
del a[1]

a是一个对象,而b是另一个对象。当您定义b = a[1]时,它会提供相同的引用,因为值是相同的。但是,当您删除a [1]时,只需断开a [1]与该值之间的连接即可。但是b仍然与该值相连,因此它仍然存在。

enter image description here

Link that visualizes evverything