파이썬에서 리스트의 특정 범위(인덱스 구간)에 있는 요소들을 주어진 숫자로 교체해야 하는 경우, 리스트 슬라이싱(list slicing)을 활용하면 반복문 없이도 아주 간단하게 처리할 수 있습니다.
예제 코드
아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.
my_list = [42, 42, 18, 73, 11, 28, 29, 0, 10, 16, 22, 53, 41]
print("The list is :")
print(my_list)
i, j = 4, 8
my_key = 9
my_list[i:j] = [my_key] * (j - i)
print("The result is:")
print(my_list)
실행 결과
The list is : [42, 42, 18, 73, 11, 28, 29, 0, 10, 16, 22, 53, 41] The result is: [42, 42, 18, 73, 9, 9, 9, 9, 10, 16, 22, 53, 41]
코드 설명
- 먼저 정수형 요소들로 구성된 리스트를 정의하고, 초기 상태를 콘솔에 출력합니다.
- 교체할 범위의 시작 인덱스(i)와 끝 인덱스(j), 그리고 새롭게 대입할 값(my_key)을 각각 정의합니다.
[my_key] * (j - i)표현식은 my_key를 (j - i)번 반복해 새로운 리스트를 생성합니다. 위 예제에서는 9를 4개 담은[9, 9, 9, 9]가 만들어집니다.- 생성된 리스트를
my_list[i:j]슬라이싱 구간에 할당하면, 해당 범위의 기존 요소들이 모두 my_key 값으로 교체됩니다. - 최종 결과가 콘솔에 출력됩니다.
핵심 포인트
파이썬에서는 슬라이싱 구간에 다른 리스트를 직접 할당할 수 있으며, 이때 길이가 달라도 자동으로 조정됩니다. 또한 [값] * 반복횟수 형태의 리스트 곱셈 연산을 활용하면 for문 같은 반복문을 사용하지 않고도 동일한 값 여러 개를 한 번에 생성할 수 있어, 코드가 훨씬 간결하고 가독성 좋아집니다.