2016-03-23 4 views
1

私は2つのリスト間の差の絶対値を合計しようとしています。 xRatingsとyRatingsの違い。ここでは理想的な結果は22.5forループ - pythonでの絶対値の合計

です。私のコードです。私は修正が簡単だと思っていますが、私はそれを見ていません。助言がありますか?

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_) 
+2

'sum_ + = count'ではなく、' sum_ + = i' – zondo

答えて

3

この試してみてください:あなたのメソッドを使用して

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

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_) 

countint、ないlistする必要があり、あなたがいないisum_countを追加する必要が、returnはfunctioで使用されますここでは不要です。

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_ 
1

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

それは合理的、効率的かつ簡潔神託ワンライナーは、です。

+0

'zip()'はおそらくもっとpythonになります。 – AChampion