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

Python如何按列表中'ID:'前缀元素将字符串列表拆分为子列表

问题原因分析
  • 原有代码每次截取都是从列表头部开始,不会跳过已经拆分过的内容,第二次匹配到ID时会包含前一段的所有数据
  • 用list.index()获取索引效率低,且如果列表中存在重复元素会返回第一个匹配项的索引,导致逻辑错误
  • 仅打印拆分结果没有存入新列表,无法得到最终的new_list对象
  • 使用list作为变量名会覆盖Python内置的列表类型,属于错误的命名实践
正确实现代码
# 不要用list作为变量名,避免覆盖内置类型
original_list = ['Acura of Columbus', '303 Veterans Memorial Pkwy', 'Lanett,', 'AL', '36863', '(334) 576-6700', 'ID:68602', 'Adventure Chevrolet', '106 1st Ave', 'Brewton,', 'AL', '36426', '(205) 375-2521', 'ID:68603']
new_list = []
split_start = 0

for index, value in enumerate(original_list):
    if value.startswith('ID:'):
        # 截取上一个分割点到当前ID之前的元素
        new_list.append(original_list[split_start:index])
        # 更新下一次分割的起始位置
        split_start = index + 1

# 如果列表末尾还有未被ID分隔的内容,也追加到结果中,不需要可以删除这部分
if split_start < len(original_list):
    new_list.append(original_list[split_start:])

print(new_list)

运行后输出结果和你预期的new_list完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:15:03