2017-10-15 1 views
0

나는 행렬을 함께 추가하는 연습을하고 있습니다. 지정된 사전에서, 키의 첫번째 숫자는 로우이고, 키의 두 번째 숫자는 열이며, 세 번째 숫자는 좌표 소정의 값이다(Python Beginner) 두 사전에서 좌표를 더하기

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} 
+1

은 그래서 질문 무엇 : – DonCziken

+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

약간 간단 :

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