gpt4 book ai didi

python - 从列表中删除元素后释放内存

转载 作者:行者123 更新时间:2023-12-01 00:58:05 25 4
gpt4 key购买 nike

当我尝试从 python 列表中删除一个元素时,整个列表的大小仍然相同。

import numpy as np
import sys

l = [np.arange(4) for i in range(4)]
print("size: {}".format(sys.getsizeof(l)))
index = 1
l[index] = None
del l[index]
print("size: {}".format(sys.getsizeof(l)))

显示:

size: 96
size: 96

删除项目后如何释放内存?gc.collect() 不起作用。

最佳答案

Python有内置的垃圾回收功能,你不必手动释放内存。对列表项调用 del 会从列表中删除该项(与删除单个索引时的 pop 方法相同),但它不保证实际释放底层内存。

使用 gc.collect() 强制垃圾回收不起作用的原因是 CPython 列表实现试图最小化 malloc 的数量>free 总体上调用,因此在这种情况下,即使元素被删除后,它们也会保留在内存中,以防您不久后分配一个新元素。

关于python - 从列表中删除元素后释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com