- alias: python에서 두 변수가 가리키는 메모리 주소가 같은 경우
- string이나 상수처럼 값을 변경시킬 수 없는 경우는 alias를 생성해도 안전하지만, list같이 값을 변경시킬 수 있는 경우에 alias를 생성하게 되는 경우 주의해야함
li1 = [1, 2, 3, 4, 5]
li2 = li1
li2[0] = 100
print(li1); print(li2)
[100, 2, 3, 4, 5]
[100, 2, 3, 4, 5]
- li2 = li1를 하는 경우, 값이 복사된 게 아니라 li2가 li1의 alias로 생성됨. li1과 li2가 동일한 객체를 참조함
- list에서 alias 생성이 아닌 값만 복사시키고 싶다면 아래와 같이 해야함
li1 = [1, 2, 3, 4, 5]
li2 = list(li1)
li3 = li1.copy()
li4 = li1[:]
li5 = [] + li1