받은 과제에 이상한 문제가 있습니다. 우리는 행렬 클래스를 구현해야합니다. 글쎄, 그리 어렵지는 않지만 파이썬은 내가 말한대로하지 않을 것이다. 그러나 나는 설명이있을 것이라고 확신한다.목록/매트릭스가 올바른 값을 저장하지 않습니다.
다음 코드에서는 목록에 제공된 값을 매트릭스에 저장하려고합니다. 내가 행렬을 인쇄하려고 할 때
class simplematrix:
matrix = [[]]
def __init__(self, * args):
lm = args[0]
ln = args[1]
values = args[2]
self.matrix = [[0]*ln]*lm
for m in range(lm):
for n in range(ln):
self.matrix[m][n] = values[(m*ln)+n]
vals = [0,1,2,3,4,5]
a = simplematrix(2,3,vals)
, 내가 얻을 것으로 기대 [[0,1,2], [3,4,5], 내가 손으로 그것을 실행하면 내가 조각에, 얻을 수있는 종이. 파이썬에서 행렬을 인쇄하면 [[3,4,5], [3,4,5]]가됩니다. 파이썬이 왜 이런 식으로 행동하는지, 아니면 어리석은 실수를 저에게 가한 사람은 누구입니까? :)
아 좋아요. 빠른 답변과 설명에 감사드립니다. 같은 목록에 여러 번 참조하는 것을 사용하는 것을 볼 수 없으므로 나 자신을 알아 내지 못했을 것입니다. 다시 한번 감사드립니다. – Casper
대단히 반갑습니다. 어느 누구에게도 이것으로 모든 사람이 잡히게됩니다. – NPE