2015-10-12 20 views
10

मैं दो शब्दकोशों के मूल्यों का एक डॉट उत्पाद करने की कोशिश कर रहा हूं। उदाहरण के लिए:शब्दकोश के साथ डॉट उत्पाद

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

सूची प्रपत्र में, ऊपर इस तरह दिखता है:

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

कैसे कर सकते हैं:

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

एक ही कुंजी के साथ शब्दकोश की डॉट उत्पाद में परिणाम होगा मैं इसे शब्दकोश के साथ प्राप्त करता हूं? सूची के साथ, मैं केवल np.dot फ़ंक्शन का आह्वान कर सकता हूं या एक छोटा लूप लिख सकता हूं। सूची पर

उत्तर

17

उपयोग योग समारोह प्राप्त के साथ जोड़ी में पुनरावृति dict_1 कुंजी के माध्यम से निर्मित() dict_2 के खिलाफ समारोह:

dot_product = sum(dict_1[key]*dict_2.get(key, 0) for key in dict_1) 
संबंधित मुद्दे