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

Python3如何按指定列表元素定位后分割目标字符串?

Python3 实现指定字符串分割需求的最优方案

给定字符串:

s = "DH3580-Fr1-TRG-TRB-DH1234-Fr3"

匹配列表:

l = ['Fr1', 'TRG', 'TRB', 'SOUL']

需求说明

  1. 跳过第一个-之前的前缀(即DH3580),从剩余部分开始扫描字符串
  2. 找到列表l中存在的最后一个元素(此示例中为TRB)
  3. 在该元素之后紧邻的-处分割原字符串,最终得到结果:
['DH3580-Fr1-TRG-TRB', 'DH1234-Fr3']

最优实现方法

通过分割字符串、定位目标元素位置、拼接结果的方式实现,逻辑清晰且效率较高:

s = "DH3580-Fr1-TRG-TRB-DH1234-Fr3"
l = ['Fr1', 'TRG', 'TRB', 'SOUL']

# 将字符串按'-'分割为片段数组
parts = s.split('-')
# 从索引1开始遍历(跳过第一个前缀),收集所有属于列表l的元素索引
match_indices = [i for i, part in enumerate(parts) if part in l and i > 0]
# 取最后一个匹配元素的索引
last_match_idx = match_indices[-1]
# 拼接前后两部分得到结果
result = [
    '-'.join(parts[:last_match_idx+1]),
    '-'.join(parts[last_match_idx+1:])
]

print(result)  # 输出: ['DH3580-Fr1-TRG-TRB', 'DH1234-Fr3']

代码说明

  • 先分割字符串为数组,便于逐个检查片段
  • 遍历过程跳过第一个前缀元素,只收集符合匹配列表的元素索引
  • 以最后一个匹配元素的索引为分界点,分别拼接前后片段,得到目标结果

相关JavaScript问题参考

问题:如何获取分割字符串数组的最后一个元素?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:38:09