행렬에 이름이 지정된 튜플로 채워진 이유는 무엇입니까?명명 된 튜플을 사용하여 행렬 채우기
인덱스가 잘못 삽입되었습니다.
어떻게 고칠 수 있습니까? [] * m
가 동일한 목록의 m
복사본을 만들기 때문에
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
m, n = 3, 3
matrix = [[None] * n] * m
for i in range(m):
for j in range(n):
matrix[i][j] = Point(i, j)
for row in matrix:
print(row)
#>>Output
#[Point(x=2, y=0), Point(x=2, y=1), Point(x=2, y=2)]
#[Point(x=2, y=0), Point(x=2, y=1), Point(x=2, y=2)]
#[Point(x=2, y=0), Point(x=2, y=1), Point(x=2, y=2)]
결과는 (
#>>Output
#[Point(x=0, y=0), Point(x=0, y=1), Point(x=0, y=2)]
#[Point(x=1, y=0), Point(x=1, y=1), Point(x=1, y=2)]
#[Point(x=2, y=0), Point(x=2, y=1), Point(x=2, y=2)]
f 사용자가 m, n = 4, 3 일 때 오류가 발생합니다. – Vartan
아니요. 초기화 행렬을 절대 떠나지 않습니다. 매트릭스 여전히 매트릭스 = [[None] * n] * m –
미안하지만, 네 말이 맞아. – Vartan