• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

얕은 복사 해결법

23.01.18 01:32 작성 조회수 145

0

안녕하세요 좋은 강의덕분에 실력 향상을 느끼고 있는 학생입니다.

궁금한점이 있어 질문드립니다.

스도쿠 문제를 풀면서 3*3의 9개 사각형을 체크하기 위해 리스트를 만들었습니다. 아래와 같은 방식을 사용했더니 한 값만 삭제해도 나머지도 같이 삭제가 되더라구요.

얕은 복사로 인해 같은 메모리를 공유해서 그런거 같은데 한 값만 삭제되는 깊은 복사가 되게 추천하시는 방법이 있나요?

사각형=[[i for i in range(1,10)]]*9 
del 사각형[0][0]
print(사각형)
>>> [[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9], 
[2, 3, 4, 5, 6, 7, 8, 9]]

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

아래와 같이 하기를 추천합니다.

사각형=[[i for i in range(1,10)] for _ in range(9)]