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

yjkim·2023년 8월 11일
0

알고리즘

목록 보기
39/60

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

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
We may throw the dice, but the Lord determines how they fall

0개의 댓글