리스트를 슬라이싱한 결과는 완전히 새로운 리스트이며, 원래 리스트에 대한 참조는 그대로 유지된다. 슬라이싱한 결과로 얻은 리스트를 변경해도 원래 리스트는 바뀌지 않는다.
b = a[3:] print('이전:', b) b[1] = 99 print('이후:', b) print('변화 없음:', a) >>> 이전: ['d', 'e', 'f', 'g', 'h'] 이후: ['d', 99, 'f', 'g', 'h'] 변화 없음: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
대입에 슬라이스를 사용하면 원본 리스트에서 지정한 범위에 들어 있는 원소를 변경한다. 언패킹 대입(예를 들면, a, b = c[:2])과 달리 슬라이스 대입에서는 슬라이스와 대입되는 리스트의 길이가 같을 필요가 없다(언패킹 대입은 Better way 6: ‘인덱스를 사용하는 대신 대입을 사용해 데이터를 언패킹하라’ 참고). 대입된 슬라이스 이전이나 이후에 있던 원소들은 그대로 유지된다. 다음 코드에서는 리스트에 지정한 슬라이스 길이보다 대입되는 배열의 길이가 더 짧기 때문에 리스트가 줄어든다.
print('이전:', a) a[2:7] = [99, 22, 14] print('이후:', a) >>> 이전: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] 이후: ['a', 'b', 99, 22, 14, 'h']