문제
아래 Python 코드의 실행결과로 올바른 것은 무엇인가?
Pythona = [1, 2, 3, 4, 5, 6, 7, 8] a[:5:2] = (10, 20, 30) print(a)
① 오류 ② [11, 22, 33, 14, 25, 36, 17, 28] ③ [10, 20, 30, 4, 5, 6, 7, 8] ④ [10, 2, 20, 4, 30, 6, 7, 8]
정답
4번
해설
정답: 4. a[:5:2]는 인덱스 0, 2, 4를 선택하므로 해당 위치에 10, 20, 30이 대입된다.
오답 풀이
- 1번: 선택된 원소 수와 대입 원소 수가 같으므로 오류가 발생하지 않는다.
- 2번: 각 원소를 계산해 바꾸는 코드가 아니다.
- 3번: 앞의 세 원소를 연속으로 바꾸는 슬라이싱이 아니다.
- 4번: 인덱스 0, 2, 4만 변경되므로 맞다.
보충 개념 확장 슬라이싱 대입에서는 선택된 위치의 개수와 대입할 값의 개수가 같아야 한다.