십대를 위한 코딩/십대를 위한 파이썬

12. 딕셔너리 메서드와 실전 활용

forSilver 2025. 4. 2. 15:43
반응형

📘 Day 12. 딕셔너리 메서드와 실전 활용


1. 딕셔너리 주요 메서드

메서드 설명 예시

get(key, default) key로 값 검색. 없으면 기본값 반환 d.get("score", 0)
keys() key 목록 반환 d.keys()
values() value 목록 반환 d.values()
items() (key, value) 쌍 목록 반환 d.items()
update(other_dict) 다른 딕셔너리와 병합 d.update(d2)
pop(key) key로 항목 삭제 후 value 반환 v = d.pop("name")
clear() 전체 항목 삭제 d.clear()
copy() 얕은 복사 d2 = d.copy()

❗ get()은 안전하게 값을 검색할 때 유용하며, 존재하지 않는 key를 조회해도 오류가 발생하지 않음.


🔁 깊은 복사 (deepcopy)

  • 중첩 구조까지 완전히 복사할 때 사용
import copy
d2 = copy.deepcopy(d1)

2. 딕셔너리 순회 방법

✅ key만 순회

for k in student.keys():
    print(k)

✅ value만 순회

for v in student.values():
    print(v)

✅ key와 value를 함께 순회

for k, v in student.items():
    print(k, v)

3. 딕셔너리 비교

  • == : 두 딕셔너리의 key와 value가 모두 같으면 True
  • != : 같지 않으면 True
a = {"name": "홍길동"}
b = {"name": "홍길동"}
print(a == b)  # True

4. 딕셔너리 컴프리헨션

기본 형식

squares = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

조건 포함

evens = {x: x**2 for x in range(10) if x % 2 == 0}

5. 실전 예제

예제 1. 학생 성적 등록 및 출력

입력:

  • 이름, 점수1, 점수2 (5명)

출력:

  • 이름, 총점, 평균
students = {}

for _ in range(5):
    name = input("학생 이름: ")
    score1 = int(input("점수1: "))
    score2 = int(input("점수2: "))
    total = score1 + score2
    avg = total / 2
    students[name] = {"점수1": score1, "점수2": score2, "총점": total, "평균": avg}

print("\n성적 일람표")
print("이름\t점수1\t점수2\t총점\t평균")
for name, data in students.items():
    print(f"{name}\t{data['점수1']}\t{data['점수2']}\t{data['총점']}\t{data['평균']:.2f}")

예제 2. 이름으로 성적 검색

while True:
    search = input("\n검색할 이름 (종료: exit): ")
    if search == "exit":
        break
    if search in students:
        data = students[search]
        print(f"{search}의 성적 → 점수1: {data['점수1']}, 점수2: {data['점수2']}, 총점: {data['총점']}, 평균: {data['평균']:.2f}")
    else:
        print("해당 학생이 존재하지 않습니다.")

✅ 오늘의 정리

항목 설명

dict.get() 키 검색 (오류 없이 기본값 반환 가능)
update() 다른 딕셔너리 병합
pop() 특정 키 삭제 및 값 반환
순회 keys(), values(), items() 활용
복사 얕은 복사 vs 깊은 복사
dict comprehension 반복문과 조건을 이용한 dict 생성
실습 성적 등록, 총점·평균 계산, 검색 기능 구현

다음 차시에서는 중복을 허용하지 않는 자료형인 집합(set)과, 재사용 가능한 코드 작성의 핵심인 함수(function) 개념을 함께 학습합니다.