3강 / 20강
인덱스와 슬라이스 — 몇 번째 칸을 집을까
0부터 세는 이유, 그리고 잘라내기
사물함에서 물건을 꺼내려면 몇 번 칸인지 말해야 합니다. 그 번호가 인덱스(index)예요. 그런데 파이썬은 0번부터 셉니다. 왜 하필 0일까요?
인덱스는 사실 "맨 앞에서 몇 칸 떨어져 있나"를 뜻하기 때문입니다. 맨 앞 칸은 0칸 떨어져 있죠. 그래서 0번입니다.
양수는 앞에서, 음수는 뒤에서 셉니다.
Python
브라우저에서 실행
슬라이스 — 구간을 통째로 잘라내기
목록[시작:끝] 은 시작 칸부터 끝 칸 직전까지를 잘라 새 리스트로 줍니다.
"끝은 포함하지 않는다"가 처음엔 이상하지만, 이렇게 하면 개수 = 끝 − 시작 이 딱 맞아떨어집니다.
슬라이스 7가지를 한눈에.
Python
브라우저에서 실행
🎮 슬라이스 실험실
손잡이를 움직이면서 어디부터 어디까지 잘리는지 직접 확인해 보세요. 범위를 벗어난 인덱스를 넣으면 어떻게 되는지도 꼭 시험해 보시고요.
일부러 오류를 내 봅니다. 빨간 메시지를 읽어 보세요.
Python
브라우저에서 실행
리스트를 복사할 때 흔히 하는 실수. 결과를 예상해 보고 실행하세요.
Python
브라우저에서 실행
🤔 확인 문제
수 = [10, 20, 30, 40, 50] 일 때 수[1:3] 의 결과는?해설 1번부터 3번 직전까지 — 즉 1번(20)과 2번(30)입니다. 개수는 3−1=2개로 딱 맞습니다.
🤔 확인 문제
길이가 5인 리스트에서
목록[7] 과 목록[7:9] 는 각각 어떻게 될까요?해설 인덱스는 엄격하고 슬라이스는 관대합니다. 없는 칸을 직접 집으면 IndexError지만, 없는 구간을 자르면 그냥
[] 예요.🤔 확인 문제
ㄴ = ㄱ 과 ㄴ = ㄱ[:] 의 차이는?해설
= 는 이름표를 하나 더 붙이는 것이고, [:] 는 내용을 새 상자에 옮겨 담는 것입니다. 이 차이를 모르면 "고친 적 없는 값이 바뀌었다"는 유령 버그를 만나게 됩니다.