📚 여러 데이터를 하나로! 리스트(List)
지금까지는 하나의 변수 상자에 하나의 값만 담는 법을 배웠습니다.
하지만 만약 우리 반 학생 30명의 시험 점수를 저장해야 한다면 변수 30개가 필요할까요?
너무 비효율적이겠죠! 이럴 때 사용하는 것이 바로 **'자료구조(Data Structure)'**입니다.
여러 개의 값을 하나의 변수에 모아서 관리하는 마법 같은 기능이죠.
파이썬은 목적에 따라 크게 4가지(List, Tuple, Dictionary, Set) 자료구조를 제공하는데요,
오늘은 그중 가장 많이 쓰이는 **리스트(List)**에 대해 알아보겠습니다.
1. 자료구조의 기본 용어
- 원소(Element / 요소): 자료구조 안에 들어있는 개별 값들을 말합니다.
- len(자료구조) 함수: 이 자료구조 안에 원소가 총 몇 개 들어있는지 개수를 알려줍니다.
2. 리스트(List)란?
리스트는 이름 그대로 값들을 순서대로 쭉 나열해서 모아두는 기차와 같습니다.
- 순서가 아주 중요합니다: 기차의 몇 번째 칸인지(Index)로 데이터를 찾기 때문입니다.
- 중복 허용: 같은 값을 여러 번 넣어도 상관없습니다.
- 자유로운 수정: 안에 들어있는 원소를 마음대로 추가, 삭제, 변경할 수 있습니다.
- 다양한 타입: 숫자, 문자열 심지어 다른 리스트까지 섞어서 담을 수 있습니다.
3. 리스트 만들고 다루기
리스트는 대괄호 [ ]를 사용하여 만듭니다.
# 리스트 생성
l = [10, 20, 30, 40, 50]
l2 = [10, 5.6, "안녕하세요", True, [1, 2, 3]] # 데이터 타입이 달라도 OK!
# 인덱싱 (하나만 콕 찝어오기)
print(l[0]) # 10 (파이썬은 0번부터 시작!)
print(l[-1]) # 50 (뒤에서 첫 번째)
# 원소 변경하기
l[2] = 1000 # 2번 인덱스(30)를 1000으로 바꿈
# 슬라이싱 (원하는 만큼 잘라오기)
print(l[1:4]) # 1번부터 3번(4번의 앞) 인덱스까지 가져옴 -> [20, 1000, 40]
4. 중첩 리스트 (Nested List)
리스트 안에 또 다른 리스트를 넣을 수도 있습니다. 엑셀의 '표(행과 열)'를 만들 때 자주 사용됩니다.
nl = [[1, 2, 3], [4, 5, 6]]
print(nl[0][1]) # 0번째 리스트([1,2,3]) 안의 1번째 원소 -> 2
5. 리스트 필수 메소드 (도구 모음)
리스트 변수 뒤에 .을 찍어서 사용합니다.
- 추가하기:
- append(값): 리스트 맨 뒤에 값 하나를 쏙 추가합니다.
- extend(리스트): 리스트 맨 뒤에 다른 리스트의 원소들을 쫙 풀어서 이어 붙입니다.
- insert(인덱스, 값): 원하는 위치(인덱스)에 값을 끼워 넣습니다.
- 삭제하기:
- remove(값): 삭제하고 싶은 '값'을 찾아 지웁니다.
(여러 개면 맨 앞 하나만) - pop(): 맨 마지막 원소를 뽑아서 반환하고 리스트에서는 지웁니다.
(인덱스를 넣으면 해당 위치 삭제) - clear(): 리스트 안을 텅 비웁니다.
- remove(값): 삭제하고 싶은 '값'을 찾아 지웁니다.
- 기타 유용한 도구:
- sort(): 값들을 작게부터 크게(오름차순) 예쁘게 정렬합니다.
(reverse=True를 넣으면 내림차순!) - index(값): 이 값이 몇 번째 방(인덱스)에 있는지 알려줍니다.
- count(값): 이 값이 리스트 안에 몇 개 들어있는지 셉니다.
- sort(): 값들을 작게부터 크게(오름차순) 예쁘게 정렬합니다.
📝 1편 복습 퀴즈
Q1. 여러 개의 값을 하나로 묶어서 관리하는 파이썬의 4가지 주요 자료구조에 속하지 않는 것은?
① List (리스트) ② Tuple (튜플) ③ String (문자열) ④ Dictionary (딕셔너리)
Q2. 리스트 l = [10, 20, 30]의 맨 끝에 40 이라는 값을 추가하려고 합니다. 알맞은 코드는 무엇인가요?
① l.insert(40) ② l.append(40) ③ l.add(40) ④ l.update(40)
Q3. l = [1, 2, 3] 과 m = [4, 5] 두 리스트가 있을 때, l.extend(m)을 실행한 후 리스트 l의 모습은?
① [1, 2, 3, [4, 5]] ② [1, 2, 3, 4, 5] ③ [[1, 2, 3], [4, 5]] ④ [5, 7, 3]
Q4. 리스트에서 내가 원하는 값이 '몇 번째 인덱스'에 있는지 그 위치를 찾아주는 메소드는 무엇인가요?
① index() ② find() ③ search() ④ count()
Q5. 빈 리스트를 만드는 올바른 방법이 아닌 것은?
① l = [] ② l = list() ③ l = {}
💡 정답 확인: Q1: ③ / Q2: ② / Q3: ②
(append를 쓰면 ①처럼 리스트 통째로 들어가지만, extend는 원소만 빼서 합쳐줍니다.)
/ Q4: ① / Q5: ③ ({}는 딕셔너리를 만듭니다)
'두두 IT > 파이썬' 카테고리의 다른 글
| [PYTHON 3-3] 중복 없는 셋(Set) & 자료구조 (1) | 2026.04.15 |
|---|---|
| [PYTHON 3-2] 변하지 않는 Tuple & 키-값 쌍의 Dictionary (0) | 2026.04.15 |
| [PYTHON 2-3] 문자열(String)과 포매팅 (0) | 2026.04.14 |
| [PYTHON 2-2] 데이터 타입과 연산자 (0) | 2026.04.14 |
| [PYTHON 2-1] 데이터를 담는 그릇, '변수(Variable) (0) | 2026.04.14 |