以下のsum関数呼び出しを除いて、以下のコードを理解しています。合計関数が引数として正確に何を受け入れるのかという論理を理解していませんか?そこにあるforループは何ですか?そのことは何ですか??
def sim_distance(prefs,person1,person2):
# Get the list of shared_items
si={}
for item in prefs[person1]:
if item in prefs[person2]: si[item]=1
# if they have no ratings in common, return 0
if len(si)==0: return 0
# Add up the squares of all the differences
sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
for item in si])
return 1/(1+sum_of_squares)