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

Python中如何高效提取列表内字符串下划线前的内容?

Python提取列表字符串下划线前部分的高效方法

这里有几种实用且高效的方法,根据你的场景选择:

  • 列表推导式 + split(最常用)
    这是Python中最直观且高效的方式,适合大多数常规场景:

    str_list = ["AAA_X", "BBB_X", "CCC_X"]
    result = [s.split('_')[0] for s in str_list]
    # 输出: ['AAA', 'BBB', 'CCC']
    

    split('_')会将字符串按下划线分割成列表,取索引为0的元素就是下划线前的部分。

  • map + lambda(简洁写法)
    如果你偏好函数式风格,map结合lambda也能实现,内存效率略优(尤其处理超大列表时):

    str_list = ["AAA_X", "BBB_X", "CCC_X"]
    result = list(map(lambda s: s.split('_')[0], str_list))
    
  • 兼容无下划线的场景
    如果列表中存在不含下划线的字符串,可加入判断避免索引错误:

    str_list = ["AAA_X", "BBB", "CCC_X"]
    result = [s.split('_')[0] if '_' in s else s for s in str_list]
    # 输出: ['AAA', 'BBB', 'CCC']
    
  • 正则表达式(复杂场景适用)
    若需要处理多个下划线的情况(仅提取第一个下划线前的内容),正则表达式更灵活,预编译正则还能提升多次匹配的效率:

    import re
    
    str_list = ["AAA_X_YY", "BBB_X", "CCC_X"]
    pattern = re.compile(r'^[^_]+')  # 预编译正则
    result = [pattern.match(s).group() for s in str_list]
    # 输出: ['AAA', 'BBB', 'CCC']
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:57:05