我有一个包含以下数据的词典,
my_dict = {'item_1': <generator object continuation_stripper at 0xda78640>,
'only_display_attrs': <generator object continuation_stripper at 0xda78690>,
'item_2': <generator object continuation_stripper at 0xda786e0>}
我试图遍历一个dict值only_display_attrs
,这个dict值是一个生成器对象。
这是我的代码,
for item in my_dict['only_display_attrs']:
yield i
注意:only_display_attrs
是SQLAlchemy
生成器对象。
对于30,000行数据,此循环消耗最多1100 MB的内存,并且在手动终止进程之前不会释放内存。
任何人都可以帮助我理解背后的原因。
答案 0 :(得分:1)
相关位是您对所产生的值所做的操作。如果你把它们放在一边,那么永远不会释放内存。但是在显示的代码中,没有内存被用完(除非continuation_stripper
代码中有错误。)