본문 바로가기
-----ETC2-----/Python

[Python] Week 10: 집합

by cogito21_python 2024. 6. 1.
반응형

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