반면 그림 4-2에서는 리스트 데이터가 기존 리스트에 신규 리스트 생성 및 재대입하는 절차 없이 바로 추가되는 것을 확인할 수 있다.
▲ 그림 4-2 리스트 추가하기(메모리-값-변경)
요약해 보자.
• +=와 같은 대입 연산자 조합은 (리스트와 같은) 가변 데이터 타입을 다루는 경우 값을 메모리에서 직접 변경(in-place)하지만, 불변 데이터 타입을 다루는 경우 신규 객체를 생성하여 좌측 피연산자 변수에 대입한다.
• 메모리-값-변경 연산자는 신규 객체를 생성할 필요가 없기 때문에 더 빠르고 메모리 공간을 더 효율적으로 사용한다. 리스트 같은 경우 파이썬은 대개 런타임 시 리스트를 더 효율적으로 확장할 수 있도록 여분의 메모리를 할당한다.