我正在使用 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]
我至少有正确的答案,但我无法让它发挥作用。我不知道从这里去哪里,或者我是否在正确的轨道上。对不起,如果我的解释可能缺乏