반응형
Day 1: 집합의 기본 개념
- 강의 내용:
- 집합의 개념
- 집합의 정의와 특징
- 리스트와 집합의 차이점
- 집합의 기본 사용법
- 집합 생성 및 초기화
- 집합 요소 접근 및 확인
- 집합의 개념
- 실습:
- 집합 생성 및 요소 접근
# 집합 생성 및 초기화
fruits = {"apple", "banana", "cherry"}
numbers = {1, 2, 3, 4, 5}
# 집합 요소 접근 및 확인
print("apple" in fruits) # True
print("grape" in fruits) # False
Day 2: 집합 메서드 I
- 강의 내용:
- 집합 메서드
- add(): 집합에 요소 추가
- remove(): 집합에서 특정 요소 제거
- discard(): 집합에서 특정 요소 제거 (요소가 없어도 오류 발생 안 함)
- pop(): 집합에서 임의의 요소 제거 및 반환
- 집합 메서드
- 실습:
- 집합 메서드를 사용한 다양한 예제
# add() 메서드
fruits.add("orange")
print(fruits) # {'banana', 'cherry', 'apple', 'orange'}
# remove() 메서드
fruits.remove("banana")
print(fruits) # {'cherry', 'apple', 'orange'}
# discard() 메서드
fruits.discard("grape")
print(fruits) # {'cherry', 'apple', 'orange'}
# pop() 메서드
item = fruits.pop()
print(item) # 'cherry' (임의의 요소)
print(fruits) # {'apple', 'orange'}
Day 3: 집합 메서드 II
- 강의 내용:
- 집합 메서드
- union(): 두 집합의 합집합 반환
- intersection(): 두 집합의 교집합 반환
- difference(): 두 집합의 차집합 반환
- symmetric_difference(): 두 집합의 대칭차집합 반환
- 집합 메서드
- 실습:
- 집합 메서드를 사용한 다양한 예제
# 집합 연산
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# union() 메서드
union_set = set1.union(set2)
print(union_set) # {1, 2, 3, 4, 5, 6, 7, 8}
# intersection() 메서드
intersection_set = set1.intersection(set2)
print(intersection_set) # {4, 5}
# difference() 메서드
difference_set = set1.difference(set2)
print(difference_set) # {1, 2, 3}
# symmetric_difference() 메서드
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set) # {1, 2, 3, 6, 7, 8}
Day 4: 집합의 순회
- 강의 내용:
- 집합 순회의 개념
- for 루프를 사용한 집합 순회
- 집합 요소 순회 방법
- 집합 순회의 개념
- 실습:
- 다양한 집합 순회 예제 작성
# 집합 순회
fruits = {"apple", "banana", "cherry"}
for fruit in fruits:
print(fruit)
Day 5: 집합 컴프리헨션
- 강의 내용:
- 집합 컴프리헨션의 개념
- 집합 컴프리헨션의 정의와 기본 구조
- 집합 컴프리헨션을 사용한 집합 생성
- 집합 컴프리헨션의 응용
- 조건을 포함한 집합 컴프리헨션
- 집합 컴프리헨션의 개념
- 실습:
- 다양한 집합 컴프리헨션 예제 작성
# 기본 집합 컴프리헨션
squares = {x**2 for x in range(6)}
print(squares) # {0, 1, 4, 9, 16, 25}
# 조건을 포함한 집합 컴프리헨션
evens = {x for x in range(10) if x % 2 == 0}
print(evens) # {0, 2, 4, 6, 8}
Day 6: 집합의 활용
- 강의 내용:
- 집합의 활용 예제
- 중복 요소 제거
- 데이터의 유일성 검사
- 데이터 간의 관계 연산 (교집합, 합집합, 차집합 등)
- 집합을 사용한 다양한 문제 해결
- 집합의 활용 예제
- 실습:
- 집합을 활용한 다양한 문제 해결 예제 작성
# 중복 요소 제거
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # {1, 2, 3, 4, 5}
# 데이터의 유일성 검사
def has_duplicates(lst):
return len(lst) != len(set(lst))
print(has_duplicates([1, 2, 3, 4, 5])) # False
print(has_duplicates([1, 2, 2, 3, 4])) # True
Day 7: 집합 종합 연습 및 프로젝트
- 강의 내용:
- 집합 종합 연습 문제 풀이
- 다양한 집합 작성 및 조작 문제
- Q&A 세션
- 미니 프로젝트
- 주제 선정 및 프로그램 설계
- 집합을 활용한 프로그램 구현 및 테스트
- 집합 종합 연습 문제 풀이
- 실습:
- 종합 연습 문제 풀기
- 미니 프로젝트 작성 및 발표
# 연습 문제 1: 두 리스트의 교집합을 반환하는 함수 작성
def intersection(lst1, lst2):
return list(set(lst1) & set(lst2))
print(intersection([1, 2, 3, 4], [3, 4, 5, 6])) # [3, 4]
# 연습 문제 2: 리스트의 요소를 제곱한 값의 집합을 반환하는 함수 작성
def square_elements(lst):
return {x**2 for x in lst}
print(square_elements([1, 2, 3, 4, 5])) # {1, 4, 9, 16, 25}
# 연습 문제 3: 두 문자열의 공통 문자를 집합으로 반환하는 함수 작성
def common_characters(str1, str2):
return set(str1) & set(str2)
print(common_characters("apple", "pineapple")) # {'p', 'e', 'a'}
# 미니 프로젝트 예제: 학생 수강 과목 관리 프로그램
def add_student_subject(students, name, subject):
if name in students:
students[name].add(subject)
else:
students[name] = {subject}
def remove_student_subject(students, name, subject):
if name in students and subject in students[name]:
students[name].remove(subject)
def print_student_subjects(students):
for name, subjects in students.items():
print(f"Name: {name}, Subjects: {', '.join(subjects)}")
students = {}
add_student_subject(students, "Alice", "Math")
add_student_subject(students, "Alice", "Science")
add_student_subject(students, "Bob", "Math")
print_student_subjects(students)
remove_student_subject(students, "Alice", "Math")
print_student_subjects(students)
이 강의는 파이썬의 집합을 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다.
반응형
'-----ETC2----- > Python' 카테고리의 다른 글
[Python] Week 12: 문자열 - 정규표현식 (0) | 2024.06.01 |
---|---|
[Python] Week 11: 문자열 조작 (0) | 2024.06.01 |
[Python] Week 9: 딕셔너리 (0) | 2024.06.01 |
[Python] Week 8: 튜플 (0) | 2024.06.01 |
[Python] Week 7: 리스트 (0) | 2024.06.01 |