더북(TheBook)

3.5 조각 안에 값 대입하기

리스트는 가변 타입이며 항목에 바로 값을 대입할 수 있다고 했다. 이 성질은 슬라이싱에도 반영된다. 예시를 살펴보자.

my_list = [10, 20, 30, 40, 50, 60]
my_list[1:4] = [707, 777]

이 예시는 [20, 30, 40]을 삭제하고, [707, 777]을 삽입한다. 결과는 다음과 같다.

[10, 707, 777, 50, 60]

슬라이싱 범위의 길이가 0인 인덱스를 넣을 수도 있다. 이렇게 되면 기존 값을 삭제하지 않고, 해당 위치에 새로운 리스트 항목을 삽입한다. 예시를 살펴보자.

my_list = [1, 2, 3, 4]
my_list[0:0] = [-50, -40]
print(my_list)     # [-50, -40, 1, 2, 3, 4] 출력

조각 안에 값을 대입할 때는 다음과 같은 제약 사항이 있다.

조각 안에 리스트를 대입할 때, 대입하려고 하는 대상은 항목이 전혀 없거나 하나만 있더라도 반드시 다른 리스트나 컬렉션이어야 한다.

조각 안에 리스트를 대입할 때 ‘스텝’이 명시된다면 조각의 범위와 삽입할 데이터의 길이가 반드시 같아야 한다. ‘스텝’이 명시되지 않았다면 길이가 꼭 같을 필요는 없다.

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