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

如何获取列表中每两个元素的组合求和结果?

实现列表中两两不同元素求和的方法

给定列表:

stuff = [1, 2, 5, 7]

需要生成名为sum_list的新列表,存储所有两两不同元素的求和结果(不重复计算同一对元素的不同顺序,比如只算1+2而不算2+1),最终结果为[3, 6, 8, 7, 9, 12]。以下是两种常用实现方式:

方法一:使用标准库itertools.combinations(简洁高效)

itertools.combinations可以直接生成列表中指定长度的不重复元素组合,结合列表推导式就能快速得到结果:

from itertools import combinations

stuff = [1, 2, 5, 7]
sum_list = [a + b for a, b in combinations(stuff, 2)]
print(sum_list)  # 输出: [3, 6, 8, 7, 9, 12]

combinations(stuff, 2)会生成(1,2)、(1,5)、(1,7)、(2,5)、(2,7)、(5,7)这些符合要求的元素对,再对每对求和即可。

方法二:手动嵌套循环(适合理解原理)

如果不想依赖标准库,可以通过双层循环控制索引,确保只计算一次两两组合:

stuff = [1, 2, 5, 7]
sum_list = []
for i in range(len(stuff)):
    # 内层循环从i+1开始,避免重复计算同一对元素
    for j in range(i + 1, len(stuff)):
        sum_list.append(stuff[i] + stuff[j])
print(sum_list)  # 输出: [3, 6, 8, 7, 9, 12]

外层循环遍历每个元素的索引i,内层循环从i+1开始遍历后续元素,这样就不会出现(stuff[j], stuff[i])这种重复组合,保证结果符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:15:28