我需要一种从内存中完全删除列表项的方法。 关键是,即使一个对象在多个列表中,当我删除它时,它也将不再在任何列表中可用,并且将从内存中完全删除。 我尝试了del,但没有用:
a = [Object(), Object()]
b = a[1]
del a[1]
但是a [1]的值仍在内存中,b!=无
如何将其从内存中完全删除?
答案 0 :(得分:-1)
在Python中,赋值运算符将右侧表达式的结果绑定到左侧表达式的名称。
因此,当您定义此内容
a = [Object(), Object()]
b = a[1]
del a[1]
a是一个对象,而b是另一个对象。当您定义b = a[1]
时,它会提供相同的引用,因为值是相同的。但是,当您删除a [1]时,只需断开a [1]与该值之间的连接即可。但是b仍然与该值相连,因此它仍然存在。