2015-10-12 4 views
10

Я пытаюсь сделать точечный продукт значений двух словарей. Например:Точечный продукт со словарями

dict_1={'a':2, 'b':3, 'c':5, 'd':2} 
dict_2={'a':2, 'b':2, 'd':3, 'e':5 } 

В виде списка выше выглядит следующим образом:

dict_1=[2,3,5,2,0] 
dict_2=[2,2,0,3,5] 

Скалярное произведение словаря с тем же ключом приведет:

Ans= 16 [2*2 + 3*2 + 5*0 + 2*3 + 0*5] 

Как может Я понимаю это со словарем? Со списком я могу просто вызвать функцию np.dot или написать небольшой цикл. Функция

ответ

17

Используйте функцию сумма в списке производится через итерацию ключей dict_1 в паре с ГЭТ() против dict_2:

dot_product = sum(dict_1[key]*dict_2.get(key, 0) for key in dict_1) 
Смежные вопросы