我正在使用python列表,我想在不使用它的时候从内存中删除一个列表。(我有一个很大的数据列表,可能有几千或几百万的elements..data类型-> float)
我尝试了这段代码,看看在python中删除是如何工作的(示例)。
import sys
array=[[12,34,54],[23,45,54,67]]
print(sys.getsizeof(array)) # it gives me result 80
#then
del(array[:])
print(sys.getsizeof(array)) #it gives me result 64?
为什么会发生这种情况?它不应该是零吗?有什么开销吗?只是好奇
发布于 2018-06-03 03:48:39
你不是在删除列表,你只是在删除内容。
64只是一个空列表在内存中的大小:
print(sys.getsizeof([])) # 64
每个对象都需要内存中的空间,直到它被完全删除,甚至是一个空字符串或None
。
发布于 2018-06-03 03:45:20
只管去做
del array
而不是
del(array[:])
https://stackoverflow.com/questions/50660521
复制相似问题