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

Python3如何基于指定元素序列将列表拆分为多个子列表

列表拆分问题解决方法

问题根源

你现有的代码仅执行一次拆分的核心原因是:第一次调用do_split方法后,原一维列表hex_data会被转为二维嵌套列表,后续循环的匹配逻辑是针对一维列表设计的,无法在二维结构中识别到剩余的特征序列,因此只会拆分一次。同时使用numpy拆分属于额外引入依赖,原生Python即可轻松实现该需求。

修复后的实现代码

# 固定匹配的目标特征序列,不要从源数据动态读取避免出错
target_seq = ['F5', '59', '9A', 'A5', '58', '89']
seq_length = len(target_seq)
# 这里替换为你自己的原始一维hex_data列表即可
hex_data = [你的原始一维十六进制数据列表]

split_points = []
# 遍历所有可能的起始位置,匹配特征序列
for idx in range(len(hex_data) - seq_length + 1):
    if hex_data[idx:idx+seq_length] == target_seq:
        split_p = idx - 2
        # 跳过开头的特征序列对应的拆分点,避免生成空列表
        if split_p > 0:
            split_points.append(split_p)

# 按照收集到的拆分点切分列表
result = []
last_pos = 0
for p in split_points:
    result.append(hex_data[last_pos:p])
    last_pos = p
# 补充最后一段剩余数据
result.append(hex_data[last_pos:])

print(result)

代码说明

  1. 首先固定要匹配的特征序列,避免从源数据动态读取时,源数据开头异常导致匹配规则错误
  2. 先遍历整个原始一维列表,收集所有符合要求的拆分点,避免边拆分边遍历导致的索引混乱问题
  3. 最后根据收集到的所有拆分点一次性完成切分,最终输出的result就是你需要的嵌套列表结构,完全符合预期输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 19:36:01