시작과 끝 인덱스가 없는 슬라이스에 대입하면 (새 리스트를 만들어내는 대신) 슬라이스가 참조하는 리스트의 내용을 대입하는(연산자 오른쪽에 있는) 리스트의 복사본으로 덮어 쓴다.
b = a print('이전 a:', a) print('이전 b:', b) a[:] = [101, 102, 103] assert a is b # 여전히 같은 리스트 객체임 print('이후 a:', a) # 새로운 내용이 들어 있음 print('이후 b:', b) # 같은 리스트 객체이기 때문에 a와 내용이 같음 >>> 이전 a: ['a', 'b', 47, 11, 22, 14, 'h'] 이전 b: ['a', 'b', 47, 11, 22, 14, 'h'] 이후 a: [101, 102, 103] 이후 b: [101, 102, 103]
기억해야 할 내용
• 슬라이싱할 때는 간결하게 하라. 시작 인덱스에 0을 넣거나, 끝 인덱스에 시퀀스 길이를 넣지 말라.
• 슬라이싱은 범위를 넘어가는 시작 인덱스나 끝 인덱스도 허용한다. 따라서 시퀀스의 시작이나 끝에서 길이를 제한하는 슬라이스(a[:20]이나 a[-20:])를 쉽게 표현할 수 있다.
• 리스트 슬라이스에 대입하면 원래 시퀀스에서 슬라이스가 가리키는 부분을 대입 연산자 오른쪽에 있는 시퀀스로 대치한다. 이때 슬라이스와 대치되는 시퀀스의 길이가 달라도 된다.