在Python中过滤大型字典列表时如何减少内存使用?”

问题描述 投票:0回答:1

我正在开发一个处理大量字典列表(数百万条记录)的 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中的大型字典列表?

python performance optimization memory large-data
1个回答
0
投票

尝试一个简单的 for 循环:

filtered_list = []
for item in large_list:
    if item["key"] > 10:
        filtered_list.append(item)
© www.soinside.com 2019 - 2024. All rights reserved.