파이썬 그래프 관련 알게된 사실

yjkim·2023년 8월 11일
0

알고리즘

목록 보기
39/59

백준 스도쿠 문제를 풀고있을 때 한가지 신기한 사실을 알게됨

graph=[1,2,3]
answer=None
def 어쩌구():
	answer=graph
    graph[0]=2
print(answer)
내예상 : 1,2,3
실제 출력 : 2,2,3

그 이유는 다음과 같음

파이썬에서 리스트나 딕셔너리 같은 가변 객체를 다른 변수에 할당할 때 실제 값을 복사하는 것이 아니라 해당 객체의 주솟값을 전달함. 그래서 해당 객체 내의 값을 변경하면 똑같이 변수의 값도 변경되는 것.

하지만 다음과 같은 경우는 좀 다르다.

graph=[1]
answer=graph
graph=[2]

print(answer)

다음과 같은 경우는 graph는 새로운 리스트 객체를 참조하게 되고 answer는 그대로 원래 객체였던 graph객체를 참조하기 때문에 answer의 값이 변하지 않는다.

profile
컴퓨터 공부 / 백엔드 개발

0개의 댓글