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

如何修正Python嵌套列表按10位长度拆分字符时生成冗余嵌套的问题

解决方案

你原代码的问题在于使用re.split()会返回拆分后的列表结构,导致多了多余嵌套,且你不需要拆分得到的前后缀内容,仅需要提取匹配到的10位数字即可,调整后的代码如下:

import re

list_val = [['01234567890000','123456789','xyz'],['123456789','1234567890111','abcdefghijkl']]
new_list = []

for sub_list in list_val:
    temp_sub = []
    for txt in sub_list:
        # 尝试匹配连续10位的数字
        match_res = re.search(r'\d{10}', txt)
        if match_res:
            # 匹配到则取10位数字
            temp_sub.append(match_res.group())
        else:
            # 未匹配到则保留原内容
            temp_sub.append(txt)
    new_list.append(temp_sub)

运行上述代码得到的输出和你预期完全一致:

[['0123456789', '123456789', 'xyz'], ['123456789', '1234567890', 'abcdefghijkl']]

逻辑说明

  • 用re.search()替代re.split(),直接查找字符串中第一个出现的连续10位数字,不需要处理多余的拆分结果
  • 匹配成功就直接取匹配到的10位数字加入结果,匹配失败就保留原字符串,不会产生多余的嵌套列表
    如果你的场景里需要处理单个字符串中存在多个10位数字的情况,可以调整为用re.findall()取对应的匹配值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:30:03