1000번 - A+B
문제와 상관없는 질문 정말 죄송합니다.. ㅠㅠ
안녕하세요 파이썬을 공부중인데 정말 멘붕이 올정도로 이해가 안가서.. 질문 올립니다.. ㅠㅠ
2차원 배열에서 왜 아래와 같이 코딩하면 0행 0 열의 요소만 바뀌는게 아니라 모든 행의 0열 요소가 바뀌는 건가요?
제가 생각하기엔 분명히 하나의 요소만 바뀌어야 할것 같은데..
예를들면 10행 10열의 board에 0, 0 부터 1,1 까지 4칸을 1로 만들고 싶어
for i in range(2):
for j in range(2):
board[i][j] += 1
했는데 4가지 요소가 1이 나오는게 아니라 중복되서 더해지네요 ㅠㅠ 혼란스럽습니다.. 꼭좀 답변 부탁드려요 ㅠ
감사합니다!
board = [[0 for _ in range(10)] for _ in range(10)]
이렇게 선언하는 것과 알려주신대로 선언하는게 차이가 있나요?
저는 여러 방식이 있는데 그 중에 다른 두개라도 배워서요..
답변 감사합니다!
질문의 코드는 board[0]의 내용이 복사되는 것이 아닌 그 리스트에 대한 레퍼런스만 복사됩니다. 그래서 board[0] ~ board[9]가 모두 같은 리스트를 나타내게 됩니다.
답변 정말 감사드립니다! 레퍼런스가 복사된다는 말씀이 혹시 그 얕은 복사처럼 되서 같은 주소를 공유하는 개념이 되는걸 말씀해주시는 건가요?
네, 얕은 복사입니다.
답변 정말 감사합니다! ^^
댓글을 작성하려면 로그인해야 합니다.
jayb100 3년 전
문제와 상관없는 질문 정말 죄송합니다.. ㅠㅠ
안녕하세요 파이썬을 공부중인데 정말 멘붕이 올정도로 이해가 안가서.. 질문 올립니다.. ㅠㅠ
2차원 배열에서 왜 아래와 같이 코딩하면 0행 0 열의 요소만 바뀌는게 아니라 모든 행의 0열 요소가 바뀌는 건가요?
제가 생각하기엔 분명히 하나의 요소만 바뀌어야 할것 같은데..
예를들면 10행 10열의 board에 0, 0 부터 1,1 까지 4칸을 1로 만들고 싶어
for i in range(2):
for j in range(2):
board[i][j] += 1
했는데 4가지 요소가 1이 나오는게 아니라 중복되서 더해지네요 ㅠㅠ 혼란스럽습니다.. 꼭좀 답변 부탁드려요 ㅠ
감사합니다!