在python里,我们时常这么清空一个对象占用的内存:
a = [1,2,3]
a = []
b = {'school': 'hust'}
b = {}
通过id()函数,可以知道,其实是创建了新的list和dict对象,原来的对象只是引用计算减一,内存还在,合适的时候会被释放。
假如我们还希望使用原来的对象,只是清空其所拥有的元素,而并不希望再创建新的list或者dict对象,怎么办呢?
对于list有两种写法:
a[:] = []
del(a[:])
对于dict,可以直接使用成员方法:
b.clear()
理论上讲,这样应该更高效,更节省内存,但我并没有实测过。