我试图将两个列表之间差异的绝对值相加。 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_)
答案 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_