我正在开发一个处理大量字典列表(数百万条记录)的 Python 脚本。我的目标是根据条件过滤列表(例如,保留某个键大于 10 的记录)。但是,我在过滤过程中遇到内存使用率很高的情况。随着列表大小的增长,内存使用量显着增加,当列表超过大约 1000 万条记录时,我的系统就会崩溃。
我尝试过使用列表理解和
map()
,但这两种方法都会导致内存消耗过多。这是我迄今为止尝试过的:
列表理解:
filtered_list = [item for item in large_list if item['key'] > 10]
使用
map()
:
filtered_list = list(map(lambda x: x if x['key'] > 10 else None, large_list))
尽管进行了这些尝试,内存使用量随着列表的增大而显着增加,最终导致我的系统崩溃。
有没有一种更节省内存的方法来过滤Python中的大型字典列表?
尝试一个简单的 for 循环:
filtered_list = []
for item in large_list:
if item["key"] > 10:
filtered_list.append(item)