Skip to main content
 首页 » 编程设计

python之高效计算过滤列表的大小

2025年05月04日15leader

我想有效地计算过滤列表的大小,即,我不想将整个过滤列表保存在内存中,我只想获取它的大小。有没有比使用 for 循环计算大小更“pythonic”的方法?

例如:

my_list = [1,2,3,4] 
 
# this loads the entire **filtered** list in memory 
size_of_filtered_list = len([item for item in my_list if item % 2 == 0]) 
 
# is there a more pythonic way than this? 
size_of_filtered_list = 0 
for item in my_list: 
    if item % 2 == 0: 
        size_of_filtered_list += 1 

更新

如果我不清楚,请见谅。虽然第一个列表(例如 my_list)已经在内存中,但我不想创建一个额外的包含过滤元素的列表来计算它们。我知道生成器和求和,但只是没有将这些点联系起来...感谢您的回答。

请您参考如下方法:

size_of_filtered_list = sum(1 for item in my_list if item % 2 == 0)