使用Python中的两个列表的元素计算总和

时间:2018-03-23 10:57:41

标签: python for-loop sum

我需要在i=1 to n之后加(y_i-A-B*x_i)^2

A和B是固定常数。 y_i和x_i是两个列表的元素。

我用sum([m-A-B*n for m,n in zip(Tlog_dist,Tlog_Tb)])尝试过,但我认为然后对所有可能的数字对进行求和,而不仅仅是与i的第一次。

我环顾四周,看到了一些带有for循环和枚举的东西,但因为我是新手并且之前从未使用过循环而卡住了。

2 个答案:

答案 0 :(得分:1)

使用numpy作为矢量化解决方案。

import numpy  as np

A = 5
B = 7
y = np.array([1, 2, 3, 4, 5])
x = np.array([6, 7, 8, 9, 10])

# (y_i-A-B*x_i)^2
res = np.sum((y - A - B*x)**2)

可以使用基于列表的解决方案,但不建议这样做。

答案 1 :(得分:0)

def calsum(n,list1,list2,A,B):
        returnvalue=0
        if n <= len(list1):
                for i in range(n):
                        sumvalue=list2[i]-A-B*list1[i]
                        power=sumvalue ** 2
                        returnvalue += power
        else:
                print "Sum is not posible with given n value"
        return returnvalue



list1=[1,2,3,4,5]
list2=[6,7,8,9,10]

if len(list1) == len(list2):
        print"Length matched"
#       calsum(n,list1,list2,A,B)
        result=calsum(5,list1,list2,1,1)
        print result
else:
        print"Not in same length"