2강 / 20강
리스트 — 번호가 붙은 사물함 한 줄
순서가 있는 여러 값을 하나의 이름으로
1강에서 상자 60개를 만들다 지쳤습니다. 해결책은 놀랄 만큼 간단해요. 상자를 한 줄로 붙여 놓고, 줄 전체에 이름표 하나만 붙이는 것입니다.
학교 복도의 사물함을 떠올려 보세요. 사물함마다 이름을 붙이지 않죠. 대신 0번, 1번, 2번… 번호를 매깁니다. 이게 리스트(list)예요.
상자 3개가 이름표 하나로 묶였습니다.
Python
브라우저에서 실행
리스트 + 반복문 = 데이터를 다루는 가장 기본적인 무기
Python
브라우저에서 실행
🎮 사물함을 직접 열고 닫아 보세요
값을 넣고 빼면 번호가 어떻게 다시 매겨지는지 눈으로 확인해 보세요. 특히 맨 앞에 넣기를 눌렀을 때 뒤 칸들이 전부 한 칸씩 밀리는 모습이 중요합니다. 이 "밀림"이 나중에 7강·8강에서 큰 이야기가 됩니다.
리스트에 값을 넣고 빼는 방법
| 하는 일 | 코드 | 설명 |
|---|---|---|
| 맨 뒤에 추가 | 목록.append(값) | 가장 빠릅니다 ⚡ |
| 중간에 끼워넣기 | 목록.insert(1, 값) | 뒤 칸이 전부 밀립니다 🐢 |
| 맨 뒤 꺼내기 | 목록.pop() | 가장 빠릅니다 ⚡ |
| 특정 칸 꺼내기 | 목록.pop(0) | 앞칸일수록 느립니다 🐢 |
| 값으로 지우기 | 목록.remove(값) | 먼저 찾아야 합니다 |
| 내용 바꾸기 | 목록[2] = 값 | 가장 빠릅니다 ⚡ |
여섯 가지 조작을 한 번에 확인합니다.
Python
브라우저에서 실행
리스트 속의 리스트 = 표(2차원). 8강 이후에 자주 씁니다.
Python
브라우저에서 실행
🤔 확인 문제
점수들 = [95, 88, 76] 일 때 점수들[1] 의 값은?해설 번호는 0번부터 시작합니다. 0번=95, 1번=88, 2번=76. 사람은 1부터 세지만 컴퓨터는 0부터 셉니다. 다음 강의에서 자세히 다룹니다.
🤔 확인 문제
100만 개짜리 리스트에서 가장 느린 작업은?
해설 맨 앞에 끼워넣으면 뒤의 100만 개가 전부 한 칸씩 밀립니다. 나머지 셋은 개수와 상관없이 즉시 끝나요. 참고로
len()은 개수를 세는 게 아니라 기억해 둔 숫자를 읽는 것입니다.🤔 확인 문제
리스트가 변수 30개보다 나은 이유로 틀린 것은?
해설 메모리 절약이 목적이 아닙니다. 값 30개는 어차피 자리를 30개 차지해요. 리스트의 가치는 다룰 방법이 생긴다는 것입니다.