2016-09-11 67 views
1

內發現兩個不同的鍵值列出的點積我使用這個方法來創建一個字典,其中鍵是它們與價值觀一個字典

def create_voting_dict(strlist): 
    return {line.split()[0]:[int(x) for x in line.split()[3:]] for line in strlist} 

名單配對但是名稱,現在我必須採用詞典中找到的兩個鍵的值的點積。 這個新的問題開始如下:

def policy_compare(sen_a, sen_b, voting_dict): 

我有問題,試圖找到什麼,在這種情況下返回。 歡迎任何幫助!提前致謝!

哦!預期結果的示例如下所示:

...voting_dict = {'Fox-Epstein':[-1,-1,-1,1],'Ravella':[1,1,1,1]} 
...policy_compare('Fox-Epstein','Ravella', voting_dict) 
...-2 

回答

0

我希望這是您所需要的。

def create_voting_dict(strlist): 
    return {line.split()[0]:[int(x) for x in line.split()[3:]] for line in strlist} 

def dot(K, L): 
    if len(K) != len(L): 
     return 0 

    return sum(i[0] * i[1] for i in zip(K, L)) 

def policy_compare(sen_a, sen_b, voting_dict): 
    return dot(voting_dict[sen_a], voting_dict[sen_b]) 

voting_dict = {'Fox-Epstein':[-1,-1,-1,1],'Ravella':[1,1,1,1]} 
print(policy_compare('Fox-Epstein','Ravella', voting_dict)) 

它返回-2。