더북(TheBook)

반면 그림 4-2에서는 리스트 데이터가 기존 리스트에 신규 리스트 생성 및 재대입하는 절차 없이 바로 추가되는 것을 확인할 수 있다.

▲ 그림 4-2 리스트 추가하기(메모리-값-변경)

요약해 보자.

+=와 같은 대입 연산자 조합은 (리스트와 같은) 가변 데이터 타입을 다루는 경우 값을 메모리에서 직접 변경(in-place)하지만, 불변 데이터 타입을 다루는 경우 신규 객체를 생성하여 좌측 피연산자 변수에 대입한다.

메모리-값-변경 연산자는 신규 객체를 생성할 필요가 없기 때문에 더 빠르고 메모리 공간을 더 효율적으로 사용한다. 리스트 같은 경우 파이썬은 대개 런타임 시 리스트를 더 효율적으로 확장할 수 있도록 여분의 메모리를 할당한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.