Python中如何便捷移除字符串列表的指定公共前缀?
Python 移除列表字符串固定前缀的简洁实现方案
需求说明
现有字符串列表如下,需要移除每一项开头的固定前缀clean_:
clean_be
clean_be_al
clean_fish_po
clean_po
期望输出结果:
be
be_al
fish_po
po
实现方法
方法1:Python 3.9+ 专属最优方案(推荐)
Python 3.9版本新增了字符串方法str.removeprefix(),专门用于移除固定前缀,不会出现误删其他字符的问题,写法最简洁直观:
original_list = ["clean_be", "clean_be_al", "clean_fish_po", "clean_po"] result = [item.removeprefix("clean_") for item in original_list]
方法2:兼容Python 3.9以下版本的方案
如果使用的Python版本低于3.9,可以用前缀判断+字符串切片的方式实现:
original_list = ["clean_be", "clean_be_al", "clean_fish_po", "clean_po"] # 先判断前缀是否存在,避免无匹配前缀时出现异常 result = [item[6:] if item.startswith("clean_") else item for item in original_list]
不推荐方案的踩坑提醒
- 不要用
item.lstrip('clean_'):lstrip是按照字符集合匹配删除,不是删除固定前缀,如果字符串开头包含c/l/e/a/n/_这些字符,会被误删 - 不要用
item.split('_',1)[1]:如果字符串中没有下划线,或者前缀不是clean_开头,会直接抛出索引异常
最终输出结果
- be
- be_al
- fish_po
- po
内容的提问来源于stack exchange,提问作者caasswa
相关产品推荐
相关产品推荐

