在搁置字典上循环时,Python是否会丢弃在上一次迭代中从内存中读取的key:value对?
我在一个巨大的搁置字典上循环,使用每个键:值对做一些事情(不改变它)。虽然字典比内存大,但我关心的是它是否会耗尽内存 示例代码:在搁置字典上循环时,Python是否会丢弃在上一次迭代中从内存中读取的key:value对?,python,dictionary,shelve,Python,Dictionary,Shelve,我在一个巨大的搁置字典上循环,使用每个键:值对做一些事情(不改变它)。虽然字典比内存大,但我关心的是它是否会耗尽内存 示例代码: dictFileName = 'dict.txt' dict = shelve.open(dictFileName) for key, value in dict.items(): # doing something using key and value dict.close() 在循环的迭代中读取的key:value对是否会在下一次迭代时从内存中丢
dictFileName = 'dict.txt'
dict = shelve.open(dictFileName)
for key, value in dict.items():
# doing something using key and value
dict.close()
在循环的迭代中读取的key:value对是否会在下一次迭代时从内存中丢弃?我想一定是这样,否则内存就会用完,因为循环基本上读取了整个字典,对吗
一般来说,当通过
f = open('someFileName', 'r')
for each_line in f:
# do something
内存中的行是否会被循环的下一次迭代丢弃?是的,在for循环的每次迭代开始时,键和值变量将被字典中的下一个键和值覆盖
除非您对数据执行某些操作以防止其被垃圾收集(例如,将其存储在for循环外部定义的列表中),否则应用程序不会耗尽内存。是的,在for循环的每次迭代开始时,将使用字典中的下一个键和值覆盖键和值变量
除非您对数据执行某些操作以防止其被垃圾收集(例如,将其存储在for循环外部定义的列表中),否则您的应用程序将不会耗尽内存。不再可访问的对象使用的内存将由垃圾收集器回收,是的。这样,逐行读取文件时不会耗尽内存。不再可访问的对象使用的内存将由垃圾收集器回收,是的。这样,您就不会在逐行读取文件时耗尽内存。谢谢您,克里斯!现在我很放松。谢谢你,克里斯!现在我很放松。谢谢你们pvg和克里斯!现在我很放松。谢谢你们pvg和克里斯!现在我很放松。