Alias

yonny·2023년 4월 1일
0
post-thumbnail
x = 5
y = 3
y = x
print(x)
print(y)

이를 실행하게 되면 x = 3, y = 5가 나온다

그렇다면 아래의 경우는 어떻게 될까?

x = [2, 3, 5, 7, 11]
y = x
y[2] = 4
print(x)
print(y)

x는 [2, 3, 5, 7, 11], y는 [2, 3, 4, 7, 11]가 나온다고 생각하겠지만 x,y 모두 [2, 3, 4, 7, 11]이 나오게 된다.

어떻게 된걸까?
파이썬에서 값을 할당하는 것을 이름표를 붙여준다고 생각할 수 있다

첫번째 예제를 살펴보면

두번째 예제를 살펴보면


해당 리스트는 x,y를 모두 가지고 있기 때문에 값 하나를 바꾸게 되면 모든 값이 변경된다.

위 경우를 해결하려면? 아래의 방법을 사용하면 된다

x = [2, 3, 5, 7, 11]
y = list(x)
y[2] = 4
print(x)
print(y)


두번째 줄의 list() 함수 때문에 동일한 리스트가 복사되어 생성된다.

0개의 댓글