본문 바로가기
5분 공부

[5분 공부] python 리스트 (list) - 4

by 멍선생 2022. 11. 29.
728x90

 

리스트 4번째 내용.

오늘은 리스트의 복사와 에일리어싱에 대해 알아보도록 하자.

 


1. 에일리어싱 (Aliasing)

 

알리아싱, 앨리어싱 등 다양하게 사람들이 부른다.

alias, 영단어로 가명 이라는 뜻이다.

즉 aliasing 이란 데이터에 별칭을 붙이는 것이라 생각하면 좋다.

 

말로 설명하기엔 살짝 어려운 것 같으므로 코드를 살짝 보자.

# 변수의 경우
x = 10
y = x
y = 5

print(x)
print(y)

 

변수의 경우에는 x와 y를 위와 같이 선언한 후, y 에 새로운 값을 대입하면 두 변수가 서로 다른 값을 갖게 됨을 알 수 있다.

 

 

# 리스트의 경우
x = [2, 3, 5, 7, 11]
y = x
y[2] = 4

print(x)
print(y)

 

 

리스트의 경우, x, y 를 위와같이 선언 한 후 y의 임의의 인덱스에 값을 대입하면 x, y 모두 변경됨을 알 수 있다.

 

이 경우에는 두 변수가 서로 다른 이름을 갖고 있지만,

실제로 컴퓨터의 메모리에 같은 주소값을 가리키고 있기 때문에(참조 라고 한다!),

동일한 리스트가 출력되는 것이다. 이때 y를 x의 alias(가명) 이라고 할 수 있다.

살짝 어려운 것 같다.

 


2. 리스트 복사

 

1번의 내용과 같은 일을 만들고 싶지 않은 경우가 대다수이다.

리스트를 복사하여 원본은 건들이지 않고, 복사한 리스트만 수정하여 새로운 데이터를 만들고 싶을 때 어떻게 해야 할까?

이런 문제점을 해결하기위해 리스트복사 라는 개념이 있다.

 

사용법은 아래와 같다.

단순히 = 연산자가 아닌 list() 를 사용하면 리스트가 복사가된다.

x = [리스트]
y = list(x)

 

1번의 예시에 list()를 추가해 보도록 하자.

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

print(x)
print(y)

 

원하는대로 결과가 나왔다.

 


 

alias의 개념이 살짝 어려운 것 같다.

멍선생도 적으면서 무슨 말인가 싶긴 하지만, 오늘은 딱 한가지만 기억하면 될 것 같다.

 

리스트는 [ = ] 를 사용하면 주소값을 참조하기 때문에 동일한 리스트가 되는 것이고,

리스트를 복사하려면 [ = list() ] 를 사용해야 한다.

 

728x90
반응형

댓글