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

Python如何按指定关键词split将列表分割为多个子列表

按指定关键词分割列表的实现方案

你原有代码的两个核心问题:

  • 只定义了单个new_list存储结果,没有在匹配到新关键词时创建新的子列表
  • 布尔标记x设为True后没有重置逻辑,所有匹配到第一个关键词后的元素都会被塞入同一个列表,无法完成分割

正确实现逻辑不需要额外维护布尔标记,直接通过结果列表的状态判断即可:

  1. 初始化空的总结果列表,用于存储所有分割后的子列表
  2. 遍历原列表每一个元素:
    • 若当前元素匹配目标关键词,立刻新建一个空的子列表,追加到总结果末尾
    • 若总结果不为空(说明已经遇到过至少一个关键词),将当前元素追加到总结果的最后一个子列表中

可直接运行的代码示例:

# 原始输入列表
original_list = ["split","foo","foo","foo","split","mama","mama","split","orange","melon"]
target_keyword = "split"
result = []

for item in original_list:
    # 匹配到关键词时新建子列表
    if item.lower() == target_keyword.lower():
        result.append([])
    # 元素追加到当前最新的子列表
    if result:
        result[-1].append(item)

运行后result的输出完全符合预期:

[
    ["split","foo","foo","foo"],
    ["split","mama","mama"],
    ["split","orange","melon"]
]

补充说明:该逻辑会自动忽略列表中第一个关键词出现前的所有元素,保证每个子列表都以关键词开头,不需要额外做边界判断。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:25:03