파이썬 이차원 배열 질문 채택완료
찬돌이
4년 전
조회 1,410
m = [[0]*5]*5
k = 0
for i in range(5):
for j in range(5):
k += 1
m[i][j] = k
print(m)
출력 결과
[ [21, 22, 23, 24, 25],
[21, 22, 23, 24, 25],
[21, 22, 23, 24, 25],
[21, 22, 23, 24, 25],
[21, 22, 23, 24, 25] ]
원하는 결과
[ [1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25] ]
왜 이렇게 출력이 되는 걸까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
행 복사만 for문을 활용하더라도 얕은 복사에 따른 문제를 해결할 수 있습니다 ^^
따라서 이렇게 선언하셔도 정상적으로 작동합니다!
m = [[0] * 5 for _ in range(5)]
즐거운 주말 되세요 :)