본문 바로가기
Python

[Python] Week 7: 리스트

by cogito21_python 2024. 6. 1.
반응형

Day 1: 리스트의 기본 개념

  • 강의 내용:
    • 리스트의 개념
      • 리스트의 정의와 특징
      • 리스트와 배열의 차이점
    • 리스트의 기본 사용법
      • 리스트 생성 및 초기화
      • 리스트 요소 접근 및 수정
  • 실습:
    • 리스트 생성 및 요소 접근
# 리스트 생성 및 초기화
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]

# 리스트 요소 접근 및 수정
print(fruits[0])  # 'apple'
fruits[1] = "blueberry"
print(fruits)  # ['apple', 'blueberry', 'cherry']

 

Day 2: 리스트 메서드 I

  • 강의 내용:
    • 리스트 메서드
      • append(): 리스트 끝에 요소 추가
      • insert(): 특정 위치에 요소 추가
      • remove(): 특정 요소 제거
      • pop(): 특정 위치의 요소 제거 및 반환
  • 실습:
    • 리스트 메서드를 사용한 다양한 예제
# append() 메서드
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")
print(fruits)  # ['apple', 'banana', 'cherry', 'orange']

# insert() 메서드
fruits.insert(1, "blueberry")
print(fruits)  # ['apple', 'blueberry', 'banana', 'cherry', 'orange']

# remove() 메서드
fruits.remove("banana")
print(fruits)  # ['apple', 'blueberry', 'cherry', 'orange']

# pop() 메서드
popped_fruit = fruits.pop(2)
print(popped_fruit)  # 'cherry'
print(fruits)  # ['apple', 'blueberry', 'orange']

 

Day 3: 리스트 메서드 II

  • 강의 내용:
    • 리스트 메서드
      • sort(): 리스트 정렬
      • reverse(): 리스트 요소 순서 반전
      • count(): 특정 요소의 개수 세기
      • index(): 특정 요소의 인덱스 반환
  • 실습:
    • 리스트 메서드를 사용한 다양한 예제
# sort() 메서드
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print(numbers)  # [1, 1, 2, 3, 4, 5, 5, 6, 9]

# reverse() 메서드
numbers.reverse()
print(numbers)  # [9, 6, 5, 5, 4, 3, 2, 1, 1]

# count() 메서드
count_of_ones = numbers.count(1)
print(count_of_ones)  # 2

# index() 메서드
index_of_five = numbers.index(5)
print(index_of_five)  # 2

 

Day 4: 리스트 슬라이싱

  • 강의 내용:
    • 리스트 슬라이싱
      • 슬라이싱의 기본 개념
      • 슬라이싱을 사용한 리스트 부분 추출
    • 슬라이싱의 응용
      • 리스트 복사
      • 리스트의 부분 수정
  • 실습:
    • 다양한 슬라이싱 예제 작성
# 리스트 슬라이싱
fruits = ["apple", "banana", "cherry", "date", "elderberry"]
print(fruits[1:4])  # ['banana', 'cherry', 'date']
print(fruits[:3])   # ['apple', 'banana', 'cherry']
print(fruits[2:])   # ['cherry', 'date', 'elderberry']

# 리스트 복사
copy_of_fruits = fruits[:]
print(copy_of_fruits)  # ['apple', 'banana', 'cherry', 'date', 'elderberry']

# 리스트의 부분 수정
fruits[1:3] = ["blueberry", "cranberry"]
print(fruits)  # ['apple', 'blueberry', 'cranberry', 'date', 'elderberry']

 

Day 5: 리스트 컴프리헨션

  • 강의 내용:
    • 리스트 컴프리헨션의 개념
      • 리스트 컴프리헨션의 정의와 기본 구조
      • 리스트 컴프리헨션을 사용한 리스트 생성
    • 리스트 컴프리헨션의 응용
      • 조건을 포함한 리스트 컴프리헨션
  • 실습:
    • 다양한 리스트 컴프리헨션 예제 작성
# 기본 리스트 컴프리헨션
squares = [x**2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 조건을 포함한 리스트 컴프리헨션
evens = [x for x in range(10) if x % 2 == 0]
print(evens)  # [0, 2, 4, 6, 8]

# 중첩 리스트 컴프리헨션
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row]
print(flattened)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

Day 6: 리스트의 복사와 참조

  • 강의 내용:
    • 리스트 복사
      • 얕은 복사와 깊은 복사
      • 복사의 필요성과 주의점
    • 리스트 참조
      • 리스트 참조의 개념과 주의점
  • 실습:
    • 얕은 복사와 깊은 복사 예제 작성
import copy

# 얕은 복사
fruits = ["apple", "banana", "cherry"]
shallow_copy = fruits[:]
shallow_copy.append("date")
print(fruits)         # ['apple', 'banana', 'cherry']
print(shallow_copy)   # ['apple', 'banana', 'cherry', 'date']

# 깊은 복사
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
deep_copy = copy.deepcopy(matrix)
deep_copy[0][0] = 0
print(matrix)     # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(deep_copy)  # [[0, 2, 3], [4, 5, 6], [7, 8, 9]]

# 리스트 참조
original = [1, 2, 3]
reference = original
reference.append(4)
print(original)  # [1, 2, 3, 4]
print(reference)  # [1, 2, 3, 4]

 

Day 7: 리스트 종합 연습 및 프로젝트

  • 강의 내용:
    • 리스트 종합 연습 문제 풀이
      • 다양한 리스트 작성 및 조작 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 리스트를 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 리스트의 요소를 역순으로 출력하는 함수 작성
def reverse_list(lst):
    return lst[::-1]

print(reverse_list([1, 2, 3, 4, 5]))  # [5, 4, 3, 2, 1]

# 연습 문제 2: 리스트의 중복 요소를 제거하는 함수 작성
def remove_duplicates(lst):
    return list(set(lst))

print(remove_duplicates([1, 2, 2, 3, 4, 4, 5]))  # [1, 2, 3, 4, 5]

# 연습 문제 3: 리스트의 요소를 제곱하여 새로운 리스트를 반환하는 함수 작성
def square_list(lst):
    return [x**2 for x in lst]

print(square_list([1, 2, 3, 4, 5]))  # [1, 4, 9, 16, 25]

# 미니 프로젝트 예제: 학생 성적 관리 프로그램
def add_student(students, name, score):
    students.append({"name": name, "score": score})

def remove_student(students, name):
    students[:] = [student for student in students if student["name"] != name]

def print_students(students):
    for student in students:
        print(f"Name: {student['name']}, Score: {student['score']}")

students = []
add_student(students, "Alice", 85)
add_student(students, "Bob", 90)
add_student(students, "Charlie", 78)
print_students(students)
remove_student(students, "Bob")
print_students(students)

 

이 강의는 파이썬의 리스트를 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!

반응형

'Python' 카테고리의 다른 글

[Python] Week 9: 딕셔너리  (0) 2024.06.01
[Python] Week 8: 튜플  (0) 2024.06.01
[Python] Week 6: 고급 함수  (0) 2024.06.01
[Python] Week 5: 함수 정의 및 호출  (0) 2024.06.01
[Python] Week 4: 반복문  (0) 2024.06.01