我试图在这个列表中对每对值求和。这是一个简短的例子,但我希望我的功能可以用于任何长度列表。
所以,对于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
我不确定我的问题是否清楚,并且我会澄清是否有任何问题。
答案 0 :(得分:2)
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)。
答案 1 :(得分:0)
尝试组合:
from itertools import combinations
x = [1,2,3]
y = 0
for p in combinations(x, 2):
y += sum(p)
答案 2 :(得分:0)
import itertools
y = sum( sum(combo) for combo in itertools.combinations( x, 2 ) )