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

如何合并两个列表返回由元组组成的新列表?需符合指定规则

问题分析

  • 原生zip()函数仅会迭代到两个列表中更短的那个结束,会丢弃长列表超出的部分,不符合你需要补全到相同长度的要求
  • 原代码逻辑是将配对后的元组元素展开追加到列表,最终返回的是扁平的一维列表,和要求的「元组构成的新列表」结构不符
  • 没有处理空列表的边界判断逻辑

修正后代码

def merge(a, b):
    # 任意列表为空直接返回空
    if not a or not b:
        return []
    max_len = max(len(a), len(b))
    res = []
    for i in range(max_len):
        # 取a的对应位置元素,超出索引就取最后一个
        a_item = a[i] if i < len(a) else a[-1]
        # 同理取b的元素
        b_item = b[i] if i < len(b) else b[-1]
        res.append((a_item, b_item))
    return res

测试验证

运行示例即可得到符合要求的结果:

  • merge([0, 1, 2], [5, 6, 7]) 返回 [(0, 5), (1, 6), (2, 7)]
  • merge([2, 1, 0], [5, 6]) 返回 [(2, 5), (1, 6), (0, 6)]
  • merge([], [2, 3]) 返回 []
  • print(merge([0, 1, 2], [5, 6])) 输出为 [(0, 5), (1, 6), (2, 6)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:24:04