Python 3.x Python3在列表上添加/迭代

Python 3.x Python3在列表上添加/迭代,python-3.x,list,Python 3.x,List,我试图对列表中的每一对值求和。下面是一个简短的示例,但我希望我的函数能够处理任意长度的列表 对于x=[1,2,3],我想返回12的值。我想浓缩一下: y = 0 for i in x: y += x[0] + x[1] y += x[1] + x[2] y += x[0] + x[2] return y 我不确定我的问题是否清楚,如果有任何问题,我会澄清 for i in range(0, len(x)-1): for j in range(i+1,

我试图对列表中的每一对值求和。下面是一个简短的示例,但我希望我的函数能够处理任意长度的列表

对于x=[1,2,3],我想返回12的值。我想浓缩一下:

y = 0
for i in x:
    y += x[0] + x[1] 
    y += x[1] + x[2]
    y += x[0] + x[2]
return y
我不确定我的问题是否清楚,如果有任何问题,我会澄清

for i in range(0, len(x)-1): 
        for j in range(i+1, len(x)):
            sum+=x[i]+x[j]
希望我写的是对的,自从我接触Python以来已经有一点了。但本质上,你有标记1和标记2-标记1从0开始,每次外循环递增时递增,而j从i+1开始,递增到数组的末尾。然后求i和j的和,通过这样做,最终将所有的组合求和在一起。它是len(x)-1,因为我在倒数第二个结果处停止(索引从0开始,因此len(x)比最后一个索引的值大1,但范围不包括结束值),而j在最后一个索引处停止(len(x)-1)

希望我写的是对的,自从我接触Python以来已经有一点了。但本质上,你有标记1和标记2-标记1从0开始,每次外循环递增时递增,而j从i+1开始,递增到数组的末尾。然后求i和j的和,通过这样做,最终将所有的组合求和在一起。它是len(x)-1,因为我在倒数第二个结果处停止(索引从0开始,因此len(x)比最后一个索引的值大1,但范围不包括结束值),而j在最后一个索引处停止(len(x)-1)。

尝试组合:

from itertools import combinations

x = [1,2,3]
y = 0
for p in combinations(x, 2):
    y += sum(p)

尝试以下组合:

from itertools import combinations

x = [1,2,3]
y = 0
for p in combinations(x, 2):
    y += sum(p)