Python - 只有在列表中的首字母之后才使用的值

时间:2016-03-21 21:31:13

标签: list python-2.7

我试图通过在不同主题中找到用户得分的相似性来制作可能找到朋友的程序:

def similarity(user,d_list):

user_data=()
user_score=[]



for item in d_list:
   if user in item:
       user_data=item[1]


   if item[0]!=user :
        local_score=0


        local_score=sum(a*b for a,b in zip(user_data,item[1]))          
        user_score.append(local_score)

print user_score 





return 

使用时:

ratings=(("mark",[4,8,0,7]),("bob",[3,6,9,1]),("jim",[11,4,6,3]),("steve",[22,19,1,0]))

作为d_list和"标记"作为用户,程序按预期工作,给出:

[67, 97, 240]

使用bob时,与标记的比较设置为0.

[0, 114, 189]

当使用史蒂夫时,该集合只是零。我不知所措。

1 个答案:

答案 0 :(得分:0)

知道了。计算仍然在第一次迭代中通过d_list嵌套。

def similarity(user,d_list):

user_data=()
user_score=[]



for item in d_list:
   if user in item:
       user_data=item[1]


for item in d_list:

    if item[0]!=user :
        local_score=0


        local_score=sum(a*b for a,b in zip(user_data,item[1]))          
        user_score.append(local_score)

print user_score 





return