반응형
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)
이 강의는 파이썬의 딕셔너리를 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다.
반응형
'-----ETC2----- > 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 |