티스토리 뷰

PYTHON

[python basic] aliasing

하이하이2222 2023. 9. 14. 16:58

=====================

x=[1,2,3,4,5]
y=x
y[0]=9
print(x)
print(y)

=====================

여기서 x와 y를 프린트한 값은 같다.

x의 주소값과 y의 주소값이 같기 때문이다.
=> 동일한 객체를 참조한다.

따라서 리스트의 인덱스 0번째 자리에 9가 바뀌게 되고,
[9,2,3,4,5]가 출력된다.

여기서 y는 x의 aliasing이라고 할 수 있다.
(a.k.a 같은 건가..?)

alias는 가명이라는 뜻을 가지고 있다.

이 상황에서 y를 바꾸면서 x를 유지하려면?

=============

x=[1,2,3,4,5]
y= list(x)
y[0]=9
print(x)
print(y)

=============

이렇게 한다면 list() 함수를 사용했기 때문에 list 함수의 내용이 복제된 것에 y가 참조하게 된다.
=> 복제된 새로운 리스트가 만들어진다는 뜻

이 경우는 복제되었기 때문에 y가 x의 aliasing이 아니다.






'PYTHON' 카테고리의 다른 글

[python basic] module과 import  (1) 2023.11.16
[python basic] 문자열과 리스트  (0) 2023.09.24
[python basic] dictionary  (0) 2023.09.14
[python basic] for문 요약  (0) 2023.09.05
[python basic] list  (0) 2023.09.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함