You need to enable JavaScript to run this app. Python元组列表处理:拼接短元组为长度6的有效元组
优惠活动
大模型
产品
解决方案
定价
更多

Python元组列表处理:拼接短元组为长度6的有效元组

元组列表短片段拼接实现方案

核心逻辑

  • 维护一个临时缓存变量,初始为空元组,用于暂存连续短片段的拼接结果
  • 逐次遍历原列表中的每个元组片段,将当前片段追加到缓存中
  • 当缓存总长度刚好达到6时,将缓存内容作为有效项存入最终结果列表,同时清空缓存,进入下一轮拼接
  • 无需额外分支判断单个元组的长度:遇到长度为6的独立有效元组时,由于初始缓存为空,拼接后长度直接为6,会自动触发入结果的逻辑,和预期规则完全匹配

完整可运行代码

def merge_short_tuples(raw_tuple_list: list[tuple], target_len: int = 6) -> list[tuple]:
    final_result = []
    temp_buffer = tuple()

    for fragment in raw_tuple_list:
        temp_buffer += fragment
        # 长度达到目标值就入库、清空缓存
        if len(temp_buffer) == target_len:
            final_result.append(temp_buffer)
            temp_buffer = tuple()
        # 越界校验:如果拼接后长度超过目标值,直接抛出错误定位异常输入
        elif len(temp_buffer) > target_len:
            raise ValueError(f"异常输入:当前拼接片段长度{len(temp_buffer)}超过目标值{target_len}")

    # 兜底校验:遍历完成后如果缓存还有剩余片段,说明存在未凑满长度的冗余内容
    if temp_buffer:
        raise ValueError(f"未完成拼接:剩余缓存长度{len(temp_buffer)}不足{target_len}")
    
    return final_result

# 示例测试
foo = [(3, 1, 0, 1, 1, 1), (3, 1), (1, 1), (3, 1),  (3, 1, 0, 1), (1, 2), (3, 3, 3, 1, 2, 2)]
foo_1 = merge_short_tuples(foo)
print(foo_1)

运行效果

执行代码后输出结果与示例完全匹配:

[(3, 1, 0, 1, 1, 1), (3, 1, 1, 1, 3, 1), (3, 1, 0, 1, 1, 2), (3, 3, 3, 1, 2, 2)]

拼接过程完全符合规则:

  • 第一个长度为6的元组直接入结果
  • 连续拼接(3,1)、(1,1)、(3,1),总长度6,对应foo_1[1]
  • 连续拼接(3,1,0,1)、(1,2),总长度6,对应foo_1[2]
  • 最后一个长度为6的元组直接入结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 20:06:10