2016-09-11 9 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): 

Я возникли проблемы, пытаясь найти то, что вернуться в этой ситуации. Любая помощь приветствуется! Заранее спасибо!

Oh! Пример ожидаемого результата будет выглядеть так:

...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.

 Смежные вопросы

  • Нет связанных вопросов^_^