더북(TheBook)

시작과 끝 인덱스가 없는 슬라이스에 대입하면 (새 리스트를 만들어내는 대신) 슬라이스가 참조하는 리스트의 내용을 대입하는(연산자 오른쪽에 있는) 리스트의 복사본으로 덮어 쓴다.

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:])를 쉽게 표현할 수 있다.

• 리스트 슬라이스에 대입하면 원래 시퀀스에서 슬라이스가 가리키는 부분을 대입 연산자 오른쪽에 있는 시퀀스로 대치한다. 이때 슬라이스와 대치되는 시퀀스의 길이가 달라도 된다.

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