You need to enable JavaScript to run this app. Python中基于指定函数过滤列表元素的最高效实现方式是什么
优惠活动
大模型
产品
解决方案
定价
更多

Python中基于指定函数过滤列表元素的最高效实现方式是什么

Python中基于自定义函数过滤列表的最高效实现方案

问题描述

在Python及常用库中,基于指定函数移除列表中不符合要求的元素、实现列表过滤的最高效方式是什么?

示例参考

  • 自定义判断函数:
def func(a):
    return a % 2 == 1
  • 待处理列表:
arr = [1,4,5,8,20,24]
  • 期望过滤结果:
new_arr = [1,5]

已尝试方案与疑问

目前已知可以通过列表推导式遍历实现过滤:

new_arr = [i for i in arr if func(i)]

想了解该方案针对大数据集的处理效率是否足够,是否存在更优的实现方式?曾考虑过用numpy实现:修改函数为满足条件返回a、否则返回-1,再调用np.remove删除所有0,不确定这种思路是否可行?

实测性能结论

经过实际运行时长测试,不同方案的性能表现如下:

  • 单独使用filter的速度是所有方案中最快的;
  • 如果后续需要支持随机访问的列表类型,filter转列表的性能和列表推导式方法基本相当;
  • numpy的np.vectorize(func)(arr)实现速度比其他普通列表处理方法略快。

内容的提问来源于stack exchange,提问作者SeismicSandwhich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 13:15:08