십대를 위한 코딩/십대를 위한 파이썬

09. 리스트의 활용과 정렬

forSilver 2025. 3. 30. 15:38
반응형

📘 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) 구조의 데이터를 어떻게 효율적으로 관리하는지 살펴봅니다.