(Python Beginner)从两个词典中添加坐标

时间:2017-10-15 20:12:46

标签: python dictionary matrix

我正在进行一项练习,我们将矩阵添加到一起。在给出的字典中,键中的第一个数字是行,键中的第二个数字是列,第三个数字是给定坐标的值:

matrix1={(2, 2): 5, (1, 2): 4, (0, 1): 2, (0, 0): 1, (1, 1): 3, (2, 3): 6}
matrix2={(0, 1): 1, (0, 2): 2, (1, 2): 3, (1, 3): 4, (2, 0): 6, (2, 3): -6}

什么代码会将它们加在一起,以便彼此相等的坐标/键组合在一起,而其他坐标/键只是为了这个输出而聚集在一起:

matrix1+2={(0, 0): 1, (0, 1): 3, (0, 2): 2, (1, 1): 3, (1, 2): 7, (1, 3): 4, (2, 0): 6, (2, 2): 5,  (2, 3): 0}

2 个答案:

答案 0 :(得分:1)

您可以将字典对象切换为计数器对象,添加计数器,然后将其作为字典返回。这将做你想要的。

>>> from collections import Counter
>>> matrix1 = Counter(matrix1)
>>> matrix2 = Counter(matrix2)
>>> matrix1.update(matrix2)
Counter({(1, 2): 7, (2, 0): 6, (2, 2): 5, (1, 3): 4, (0, 1): 3, (1, 1): 3, (0, 2): 2, (0, 0): 1, (2, 3): 0})
>>> matrix = dict(matrix1)

答案 1 :(得分:1)

稍微简单一些:

d = defaultdict(lambda: 0, matrix2)
for pos, value in matrix1.items():
    d[pos] += value