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

如何用循环或函数计算列表元素两两累加和(禁用sum()函数)

实现列表元素的两两累加求和

需求说明

要求对列表中的元素进行两两累加求和,例如列表[1,2,3]的计算逻辑为(1+3)+(2+1)+(3+2)(等价于所有无序两两组合的和相加),最终输出结果为12。禁止使用sum()函数或直接硬编码逐项相加的方式。


方法1:嵌套循环实现(直观版)

通过两层循环遍历列表中的每个元素对,当两个元素不是同一个位置的元素时,将它们的和累加到总结果中。这种方式完全符合循环实现的要求,逻辑清晰易懂。

def pairwise_sum(lst):
    total = 0
    # 遍历每个元素的索引
    for i in range(len(lst)):
        # 遍历所有元素的索引
        for j in range(len(lst)):
            # 跳过自身与自身的组合
            if i != j:
                total += lst[i] + lst[j]
    return total

# 测试示例
test_list = [1, 2, 3]
print(pairwise_sum(test_list))  # 输出:12

方法2:数学优化版(高效循环实现)

观察规律可以发现:每个元素会和列表中其余n-1个元素各相加一次(n为列表长度),因此总结果等于列表所有元素的总和乘以n-1。我们可以用循环先计算元素总和(不使用sum()),再进行乘法运算,时间复杂度从O(n²)优化到O(n)。

def pairwise_sum(lst):
    # 循环计算元素总和,避免使用sum()
    element_total = 0
    for num in lst:
        element_total += num
    # 计算总结果
    return element_total * (len(lst) - 1)

# 测试示例
test_list = [1, 2, 3]
print(pairwise_sum(test_list))  # 输出:12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:40:40