我在一个巨大的书架字典上循环使用每一个键:值对(不更改)。虽然字典比内存大,但我担心的是它是否会耗尽内存。你知道吗
示例代码:
dictFileName = 'dict.txt'
dict = shelve.open(dictFileName)
for key, value in dict.items():
# doing something using key and value
dict.close()
会不会键:值对在循环的一次迭代中读取的数据是否会被下一次迭代从内存中丢弃?我想一定是这样的,否则内存就会耗尽,因为循环基本上读取了整个字典,对吧?你知道吗
一般来说,当通过
f = open('someFileName', 'r')
for each_line in f:
# do something
内存中的行是否会被循环的下一次迭代丢弃?你知道吗
是的,在for循环的每次迭代开始时,键和值变量将被字典中的下一个键和值覆盖。你知道吗
除非您对数据做了一些防止垃圾收集的操作(例如,将其存储在for循环外定义的列表中),否则应用程序不会耗尽内存。你知道吗
不再可访问的对象使用的内存将由垃圾收集器回收,是的。这样你就不会一行一行地读取一个文件而耗尽内存。你知道吗
相关问题 更多 >
编程相关推荐