Python释放字典的内存

6 投票
1 回答
4831 浏览
提问于 2025-04-18 02:55

我在使用Python中的字典时遇到了一个问题,想要释放它占用的内存。

a = dict() 
for i in xrange(1000000):
    a[i] = i
for i in xrange(1000000):
    del a[i]
gc.collect()

我运行这些代码后,发现内存使用量比之前高了很多。请问我该如何释放所有的内存?需要注意的是,我并不想删除这个字典本身。

谢谢。

1 个回答

4

光是把字典里的所有元素删掉,并不能把这个字典从内存中移除。Python使用了一种叫做引用计数的技术。只有当一个对象的引用计数降到0的时候,它才会被准备好进行垃圾回收。所以,最好的办法是把引用a从指向这个字典中去掉,像这样做:

a = None

如果这个字典没有其他的引用,那么a所指向的字典就会自动被垃圾回收。

撰写回答