2017-12-24 TIL

알고리즘 연습 : 행렬끼리의 덧셈하기. 2중 for문을 파이썬에서 처음 써봤다. 조금씩 파이썬이 익숙해지는 느낌이 든다(레벨1짜리 문제만 풀고 있으면서..)

def sumMatrix(A,B):
	answer = []
	for i in range(len(A)):
		sumM = []
		for j in range(len(A[0])):
			sumM.append(A[i][j]+B[i][j])
		answer.append(sumM)
	return answer

# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))

그리고 고수의 답을 봤는데..

???

def sumMatrix(A,B):
    answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
    return answer


# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(sumMatrix([[1,2], [2,3]], [[3,4],[5,6]]))

zip(*iterables) Make an iterator that aggregates elements from each of the iterables.

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True

Comments