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

如何自定义函数实现两个列表同索引元素求和(禁用zip、map)

当然可以用自定义函数实现两个列表同索引元素求和的功能!我来给你展示几种靠谱的写法,顺便帮你排查下可能导致输出为1的问题~

自定义函数实现同索引列表求和

方法1:基础循环遍历索引

这是最直观的写法,适合刚接触自定义函数的场景:

def sum_corresponding_elements(list_a, list_b):
    # 先初始化一个空列表用来存结果
    summed_list = []
    # 假设两个列表长度一致,如果需要处理长度不同的情况,可以额外加判断
    for idx in range(len(list_a)):
        summed_list.append(list_a[idx] + list_b[idx])
    return summed_list

# 测试用例
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(sum_corresponding_elements(list1, list2))  # 输出:[5, 7, 9]

方法2:结合zip简化代码

既然你已经了解zip的用法,用它来配对元素能让代码更简洁:

def sum_corresponding_elements(list_a, list_b):
    # 用列表推导式直接生成结果列表
    return [x + y for x, y in zip(list_a, list_b)]

# 同样测试
list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(sum_corresponding_elements(list1, list2))  # 输出:[5, 7, 9]

为什么你得到的是1?

你提到输出结果是1,大概率是自定义函数的逻辑出了问题,没有正确收集每一对元素的和。举几个可能的错误场景:

  • 函数里没有用列表收集结果,而是最后只返回了某个单个值(比如误写了索引、或者循环里覆盖了变量但没追加到列表)
  • 不小心把求和逻辑写成了判断条件(比如误加了==之类的比较运算符,导致返回布尔值True也就是1)

只要确保函数的核心逻辑是遍历每一对同索引元素,把它们的和逐个加入结果列表,最后返回整个列表,就能得到你想要的[5,7,9]啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:37:31