반응형
📘 Day 09. 리스트의 활용과 정렬
1. 중첩 리스트(Nested List)
- 리스트 내부에 또 다른 리스트를 요소로 포함하는 구조
l = [ [1, 2], [3, 4] ]
- 값 접근 방법:
print(l[0]) # [1, 2]
print(l[0][0]) # 1
print(l[1][1]) # 4
- 중첩 정도에 따라 인덱스를 연달아 사용하여 내부 값에 접근
2. 리스트 메서드(method)
➕ 값 추가
메서드 설명 예시
append(x) | 마지막에 값 추가 | lst.append(10) |
insert(i, x) | i번째 위치 앞에 값 삽입 | lst.insert(1, 20) |
- append()는 리스트 끝에 무조건 추가
- insert()는 특정 위치에 값 삽입 (기존 요소는 뒤로 밀림)
✏️ 값 변경
- 인덱싱으로 변경
lst[0] = 100
- 슬라이싱으로 복수 요소 변경
lst[1:3] = [200, 300] # 요소 2개 변경
lst[2:2] = [400, 500] # 중간 삽입
❌ 값 삭제
방법 설명 예시
del | 인덱싱/슬라이싱으로 삭제 | del lst[1], del lst[1:3] |
remove(x) | 값 x 삭제 (첫 번째 항목만) | lst.remove(20) |
pop() | 마지막 요소 제거 및 반환 | lst.pop() |
clear() | 전체 요소 삭제 | lst.clear() |
remove()나 index()는 값이 없으면 오류 발생 (예외 처리 필요)
🔍 검색 및 개수 확인
메서드 설명 예시
index(x) | 값 x의 첫 번째 인덱스 반환 | lst.index(50) |
count(x) | 값 x의 개수 반환 | lst.count(10) |
3. 리스트 정렬
정렬 알고리즘 개념
- 정렬 키(key): 기준값
- 정렬 방향: 오름차순(ascending), 내림차순(descending)
🧱 정렬 메서드와 함수
방법 설명 원본 변경 여부
list.sort() | 리스트 자체를 정렬 | 변경됨 (in-place) |
sorted(list) | 정렬된 새로운 리스트 반환 | 원본 유지 |
a = [5, 2, 8, 1]
a.sort()
print(a) # [1, 2, 5, 8]
b = [3, 7, 4]
c = sorted(b, reverse=True)
print(c) # [7, 4, 3]
리스트 내부 데이터는 모두 같은 자료형이어야 정렬 가능
🧠 Stack 구조와 pop()
- pop()은 마지막 요소를 꺼내면서 제거
- 이는 LIFO(후입선출) 구조인 스택(stack) 개념과 유사
- 임시 저장 및 되돌리기 기능 등에 활용
✅ 오늘의 정리
항목 내용
중첩 리스트 | 리스트 안에 리스트를 포함할 수 있음 |
추가 메서드 | append(), insert() |
변경 방법 | 인덱싱, 슬라이싱으로 수정 가능 |
삭제 방법 | del, remove(), pop(), clear() |
검색 메서드 | index(), count() |
정렬 방법 | sort() (원본 변경), sorted() (복사본 반환) |
다음 차시에서는 리스트 마무리와 함께 딕셔너리(dict) 자료형을 학습하며, 키-값(key-value) 구조의 데이터를 어떻게 효율적으로 관리하는지 살펴봅니다.
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
11. 딕셔너리(dict)의 개념과 활용 (1) | 2025.04.01 |
---|---|
10. 리스트 복사와 고급 활용 (0) | 2025.03.31 |
08. 리스트(list) (2) | 2025.03.29 |
07. 문자열(str)과 튜플(tuple) (1) | 2025.03.28 |
06. 시퀀스 자료형 개요와 문자열(str) (0) | 2025.03.27 |