from math import sqrt
def sim_distance(prefs,person1,person2):
si={}
for item in prefs[person1]:
if item in prefs[person2]:
si[item]=1
if len(si)==0: return 0
sum_of_squares=sum([ pow (prefs[person1] [item] - prefs[person2][item],2)
for item in prefs[person1] if item in prefs[person2]])
return 1/(1+sqrt(sum_of_squares))
reload(recommendations)
recommendations.sim_distance(critics,'Lisa Rose','Gene Seymour')
而且它的錯誤如何重新加載python中的名稱空間?
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
recommendations.sim_distance(critics,'Lisa Rose','Gene Seymour')
NameError: name 'critics' is not defined
批評是一個自定義的數組
你在哪裏初始化「評論家」? – valdarin 2012-04-14 16:17:39
in recommendations.py,before sim_distance – MindHacks 2012-04-14 16:23:41
如果你可以包含初始化批評者的代碼,我想我們可以找出問題所在。正如下面已經提到的那樣,解釋者告訴你,它在當前範圍內沒有任何名爲'critics'的東西。我猜你是在一個函數中定義它,這意味着一旦函數返回它不在範圍內。 – valdarin 2012-04-14 16:27:13