求和for循环中的绝对值 - python

时间:2016-03-23 00:34:07

标签: python list for-loop sum

我试图将两个列表之间差异的绝对值相加。 xRatings和yRatings之间的区别。理想的结果是22.5

这是我的代码。我觉得修复很简单,但我只是没有看到它。有什么建议吗?

import math

xRatings =[1,5,1,3.5,4,4,3]
yRatings = [5,1,5,1,1,1,1]
sum_= 0

for i in range(7):

    count = [math.fabs(xRatings[i]-yRatings[i])]
    sum_ += i

return sum_


print(sum_)

4 个答案:

答案 0 :(得分:3)

试试这个:

print(sum(abs(x-y) for (x, y) in zip(xRatings, yRatings)))

答案 1 :(得分:1)

你可以这样做:

sum( abs(xRatings[i] - yRatings[i]) for i in range(len(xRatings)))

这是一种pythonic单行,合理有效和简洁。

答案 2 :(得分:0)

使用您的方法:

import math

xRatings =[1,5,1,3.5,4,4,3]
yRatings = [5,1,5,1,1,1,1]
sum_= 0

for i in range(7):

    count = math.fabs(xRatings[i]-yRatings[i])
    sum_ += count

print(sum_)

count应该是int,而不是list,您需要将count添加到sum_,而不是i,以及{ {1}}在函数内部使用,因此这里不需要。

答案 3 :(得分:0)

这适用于Python 2.7:

xRatings =[1,5,1,3.5,4,4,3]
yRatings = [5,1,5,1,1,1,1]
sum_= 0

for i in range(7):
    sum_ += abs(xRatings[i]-yRatings[i])

print sum_