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

Python按指定规则拆分字符串列表并保留原有顺序的方法

Python字符串列表按规则拆分实现
  • 遍历原列表时严格保留元素原有先后顺序,不做额外重排
  • 仅对列表原始元素做一次拆分判定,拆分生成的新子串不会重复进入校验流程
  • 拆分判定逻辑:
    • 字符串中不存在:时,直接保留原串
    • 找到字符串中第一个:后,跳过后续连续的空白字符(空格、换行、制表符等),如果后续无有效非空白内容(即:后全为空白),保留原串不拆分
    • 如果跳过:后连续空白仍有有效内容,则在第一个:位置拆分,前半段为包含:在内的前缀,后半段为:后跳过前导空白的全部剩余内容

实现代码

def split_str_list(input_list):
    result = []
    for s in input_list:
        colon_idx = s.find(':')
        # 字符串无冒号,直接保留
        if colon_idx == -1:
            result.append(s)
            continue
        # 定位冒号后第一个非空白字符的位置
        content_start = colon_idx + 1
        s_length = len(s)
        while content_start < s_length and s[content_start].isspace():
            content_start += 1
        # 冒号后全为空白字符,不拆分
        if content_start == s_length:
            result.append(s)
            continue
        # 按规则拆分,子串不再做二次校验
        left = s[:colon_idx + 1]
        right = s[content_start:]
        result.append(left)
        result.append(right)
    return result

效果验证

  • 测试场景1
    输入:['example: Test', 'example: ', 'IGNORE_ME_EXAMPLE']
    执行函数返回结果:['example:', 'Test', 'example: ', 'IGNORE_ME_EXAMPLE'],与预期输出完全一致。
  • 测试场景2
    输入:['example: Test::YES']
    执行函数返回结果:['example:', 'Test::YES'],仅在首个冒号位置完成拆分,不会对子串中后续的冒号做重复处理,符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:48:52