我使用Python來學習線性代數和我有兩個字典:的Python:字典乘法
v = {1: 1, 2: 8, 3: 0}
和
M = {(1, 2): 2, (3, 1): 1, (3, 3): 7, (2, 1): -1}
,我想打一個字典,將所有的元素,它的鍵在v中與M中的元組的第一部分是相同的。我想在這裏作爲這兩個字典的答案的例子。 (我會告訴我想要做的計算)
newDict = {1: 1*M[(1, 2)], 2: 8*M[(2, 1)], 3: 0*M[(3, 1)]+0*M[(3, 3)]
這是一樣的:
newDict = {1: 1*2, 2: 8*-1, 3: 0*1+3*7}
,所以我得到一個最終的字典形式
newDict = {1:2, 2:-8, 3:0}
,你可以請看,我需要與字典v中相同的密鑰。最近的我得到的是:
>>> [v[k]*M[r] for k in v for r in M if k == r[0]]
[2, -8]
我在哪裏至少有正確的答案,但我無法得到這個工作。我不知道該從哪裏出發,或者我是否處於正確的軌道。對不起,如果我的解釋可能缺乏
它必須是'3:0 * 1 + 0 * 7'? –
你正在用這種方法增加所有的東西,對吧?你不是在說「把乘法加在一起」的部分。 – Jblasco
也許你應該開始解釋,你正在試圖寫一個稀疏矩陣和一個稀疏矢量的乘法... – hivert