파이썬 깊은 복사

2600 단어 파이썬파이썬

코테 대비를 하다보면 원본배열을 복사해야할 때가 많다.

graph=[0,0,0,0,0] #원본배열
tempgraph=graph #복사
tempgraph[0]=1 #복사 배열 수정
print(graph) #[1,0,0,0,0]출력

bfs 문제에서 아무생각없이 이런식으로 대입했다가 한참 헤맸다..
list,set 같은 애들한테 이렇게 하면 원본 객체를 복사하는게 아니라 같은 주소값을 참조하는 것 뿐이므로...이런사태가 발생했다. 원본 객체에 영향을 줄 수 없는 복사본 객체를 만드려면 copy.deepcopy를 사용해야 한다.

import copy
graph=[0,0,0,0,0]
tempgraph=copy.deepcopy(graph)
tempgraph[0]=1
print(graph) #[0,0,0,0,0]출력
print(tempgraph) #[1,0,0,0,0]출력

카피 쩜찍고 딮카피...외우자

좋은 웹페이지 즐겨찾기