You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表匹配需求:筛选以指定前缀开头的文件条目

Python列表筛选:提取指定前缀的文件条目

现有两个Python列表:

prefixList = ["12","9"]
files = ["12-a.csv","12-b.csv","9-t.txt","8-a.txt"]

需要创建新列表fileOutput,把所有以prefixList里的元素开头的文件条目都放进去,最终要得到:

fileOutput = ["12-a.csv","12-b.csv","9-t.txt"]

几种实现方法

方法1:列表推导式(最常用)

直接遍历文件列表,逐个检查是否符合前缀要求:

prefixList = ["12","9"]
files = ["12-a.csv","12-b.csv","9-t.txt","8-a.txt"]

fileOutput = [file for file in files if any(file.startswith(prefix) for prefix in prefixList)]
print(fileOutput)

运行后就能得到预期的结果。

方法2:用filter函数(函数式风格)

如果习惯用函数式写法,可以用filter配合lambda表达式:

prefixList = ["12","9"]
files = ["12-a.csv","12-b.csv","9-t.txt","8-a.txt"]

fileOutput = list(filter(lambda f: any(f.startswith(p) for p in prefixList), files))
print(fileOutput)

方法3:优化版列表推导式

str.startswith()其实支持传入元组做批量检查,把前缀列表转成元组能提升一点性能,写法也更简洁:

prefixList = ["12","9"]
files = ["12-a.csv","12-b.csv","9-t.txt","8-a.txt"]

prefix_tuple = tuple(prefixList)
fileOutput = [file for file in files if file.startswith(prefix_tuple)]
print(fileOutput)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:24:32