본문 바로가기
Python

[Python] Week 9: 딕셔너리

by cogito21_python 2024. 6. 1.
반응형

Day 1: 딕셔너리의 기본 개념

  • 강의 내용:
    • 딕셔너리의 개념
      • 딕셔너리의 정의와 특징
      • 키-값 쌍 (key-value pair)의 개념
    • 딕셔너리의 기본 사용법
      • 딕셔너리 생성 및 초기화
      • 딕셔너리 요소 접근 및 수정
  • 실습:
    • 딕셔너리 생성 및 요소 접근
# 딕셔너리 생성 및 초기화
person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}

# 딕셔너리 요소 접근 및 수정
print(person["name"])  # 'Alice'
person["age"] = 30
print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}

 

Day 2: 딕셔너리 메서드 I

  • 강의 내용:
    • 딕셔너리 메서드
      • keys(): 딕셔너리의 모든 키 반환
      • values(): 딕셔너리의 모든 값 반환
      • items(): 딕셔너리의 모든 키-값 쌍 반환
  • 실습:
    • 딕셔너리 메서드를 사용한 다양한 예제
# keys() 메서드
keys = person.keys()
print(keys)  # dict_keys(['name', 'age', 'city'])

# values() 메서드
values = person.values()
print(values)  # dict_values(['Alice', 30, 'New York'])

# items() 메서드
items = person.items()
print(items)  # dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])

 

Day 3: 딕셔너리 메서드 II

  • 강의 내용:
    • 딕셔너리 메서드
      • get(): 키에 대응하는 값 반환
      • update(): 딕셔너리에 다른 딕셔너리의 키-값 쌍 추가
      • pop(): 특정 키-값 쌍 제거 및 값 반환
  • 실습:
    • 딕셔너리 메서드를 사용한 다양한 예제
# get() 메서드
name = person.get("name")
print(name)  # 'Alice'

# update() 메서드
person.update({"email": "alice@example.com"})
print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York', 'email': 'alice@example.com'}

# pop() 메서드
age = person.pop("age")
print(age)  # 30
print(person)  # {'name': 'Alice', 'city': 'New York', 'email': 'alice@example.com'}

 

Day 4: 딕셔너리 순회

  • 강의 내용:
    • 딕셔너리 순회의 개념
      • for 루프를 사용한 딕셔너리 순회
      • 키, 값, 키-값 쌍 순회 방법
  • 실습:
    • 다양한 딕셔너리 순회 예제 작성
# 딕셔너리 순회
# 키 순회
for key in person.keys():
    print(key)

# 값 순회
for value in person.values():
    print(value)

# 키-값 쌍 순회
for key, value in person.items():
    print(f"{key}: {value}")

 

Day 5: 딕셔너리 컴프리헨션

  • 강의 내용:
    • 딕셔너리 컴프리헨션의 개념
      • 딕셔너리 컴프리헨션의 정의와 기본 구조
      • 딕셔너리 컴프리헨션을 사용한 딕셔너리 생성
    • 딕셔너리 컴프리헨션의 응용
      • 조건을 포함한 딕셔너리 컴프리헨션
  • 실습:
    • 다양한 딕셔너리 컴프리헨션 예제 작성
# 기본 딕셔너리 컴프리헨션
squares = {x: x**2 for x in range(6)}
print(squares)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# 조건을 포함한 딕셔너리 컴프리헨션
evens = {x: x**2 for x in range(10) if x % 2 == 0}
print(evens)  # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

 

Day 6: 중첩 딕셔너리

  • 강의 내용:
    • 중첩 딕셔너리의 개념
      • 중첩 딕셔너리의 정의와 사용법
      • 중첩 딕셔너리의 요소 접근 및 수정
    • 중첩 딕셔너리의 활용 예제
  • 실습:
    • 중첩 딕셔너리를 사용한 예제 작성
# 중첩 딕셔너리
students = {
    "student1": {"name": "Alice", "age": 25, "city": "New York"},
    "student2": {"name": "Bob", "age": 22, "city": "Los Angeles"},
    "student3": {"name": "Charlie", "age": 23, "city": "Chicago"}
}

# 요소 접근
print(students["student1"]["name"])  # 'Alice'

# 요소 수정
students["student2"]["age"] = 23
print(students["student2"])  # {'name': 'Bob', 'age': 23, 'city': 'Los Angeles'}

 

Day 7: 딕셔너리 종합 연습 및 프로젝트

  • 강의 내용:
    • 딕셔너리 종합 연습 문제 풀이
      • 다양한 딕셔너리 작성 및 조작 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 딕셔너리를 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 딕셔너리를 받아 키와 값을 서로 바꾼 새 딕셔너리 반환하는 함수 작성
def invert_dict(d):
    return {v: k for k, v in d.items()}

print(invert_dict({"a": 1, "b": 2, "c": 3}))  # {1: 'a', 2: 'b', 3: 'c'}

# 연습 문제 2: 두 개의 딕셔너리를 병합하는 함수 작성 (공통 키의 경우 값 합산)
def merge_dicts(d1, d2):
    merged = d1.copy()
    for k, v in d2.items():
        if k in merged:
            merged[k] += v
        else:
            merged[k] = v
    return merged

print(merge_dicts({"a": 1, "b": 2}, {"b": 3, "c": 4}))  # {'a': 1, 'b': 5, 'c': 4}

# 연습 문제 3: 학생 점수를 받아 평균 점수 계산하는 함수 작성
def calculate_average(students):
    total_score = sum(students.values())
    num_students = len(students)
    return total_score / num_students

students_scores = {"Alice": 85, "Bob": 90, "Charlie": 78}
print(calculate_average(students_scores))  # 84.33333333333333

# 미니 프로젝트 예제: 연락처 관리 프로그램
def add_contact(contacts, name, phone, email):
    contacts[name] = {"phone": phone, "email": email}

def remove_contact(contacts, name):
    if name in contacts:
        del contacts[name]

def print_contacts(contacts):
    for name, info in contacts.items():
        print(f"Name: {name}, Phone: {info['phone']}, Email: {info['email']}")

contacts = {}
add_contact(contacts, "Alice", "123-456-7890", "alice@example.com")
add_contact(contacts, "Bob", "987-654-3210", "bob@example.com")
print_contacts(contacts)
remove_contact(contacts, "Alice")
print_contacts(contacts)

 

이 강의는 파이썬의 딕셔너리를 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다.

반응형

'Python' 카테고리의 다른 글

[Python] Week 11: 문자열 조작  (0) 2024.06.01
[Python] Week 10: 집합  (0) 2024.06.01
[Python] Week 8: 튜플  (0) 2024.06.01
[Python] Week 7: 리스트  (0) 2024.06.01
[Python] Week 6: 고급 함수  (0) 2024.06.01