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

如何基于特定唯一标识将Python列表拆分为对应子列表

问题解决

报错原因

  • 判断条件逻辑顺序错误:优先执行了lst[i][0].isdigit(),如果列表存在空字符串元素就会直接触发IndexError索引越界错误
  • 唯一标识的判断规则不符合需求:需求明确唯一标识为带两个空格的字符串,你用首字符是数字+长度大于10的判断逻辑既不准确,也没有贴合需求定义
  • 初始化逻辑存在冗余:初始设置lists = [[]]会导致最终输出结果的第一个元素为空列表,需要额外处理

修正后代码

直接根据需求定义判断唯一标识(元素包含2个空格)即可:

lst = ['1234 56 789',
 '12345',
 'x',
 'y',
 '9876 54 321',
 '54321',
 'x',
 '1234 98 765',
 '12398',
 'x',
 'y']

res = []
for item in lst:
    # 匹配唯一标识规则:包含2个空格
    if item.count(' ') == 2:
        res.append([item])
    else:
        res[-1].append(item)
print(res)

如果你坚持使用原来的首字符+长度判断逻辑,只需要调整判断顺序,先判断字符串长度大于0再访问索引即可:

if len(lst[i]) > 0 and lst[i][0].isdigit() and len(lst[i]) > 10:

但该判断逻辑远不如直接判断空格数贴合需求,可能会出现误判。

输出结果

[['1234 56 789', '12345', 'x', 'y'],
 ['9876 54 321', '54321', 'x'],
 ['1234 98 765', '12398', 'x', 'y']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:57:00