1. 딕셔너리 생성 심화 예제 3개
{} 또는 dict()를 이용하여 key:value 구조의 데이터를 만든다.
예제 1. 중첩 딕셔너리 생성
Python 코드
students = {
'101': {'이름': '민수', '점수': 92},
'102': {'이름': '지아', '점수': 88},
'103': {'이름': '하준', '점수': 95}
}
print(students['101']['이름'])
print(students['103']['점수'])출력 결과
민수
95예제 2. dict()와 zip()으로 생성
Python 코드
keys = ['국어', '수학', '영어']
values = [90, 95, 87]
score = dict(zip(keys, values))
print(score)출력 결과
{'국어': 90, '수학': 95, '영어': 87}예제 3. 딕셔너리 컴프리헨션
Python 코드
numbers = [1, 2, 3, 4, 5]
squares = {n: n ** 2 for n in numbers}
print(squares)출력 결과
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}2. 값 조회 심화 예제 3개
키를 이용해 원하는 값을 꺼낸다.
예제 1. 중첩 값 조회
Python 코드
student = {
'이름': '민수',
'성적': {'수학': 95, '과학': 98}
}
print(student['성적']['과학'])출력 결과
98예제 2. 반복문으로 특정 값 조회
Python 코드
scores = {'민수': 92, '지아': 88, '하준': 95}
for name in scores:
print(name, scores[name])출력 결과
민수 92
지아 88
하준 95예제 3. 조건에 맞는 값 조회
Python 코드
scores = {'민수': 92, '지아': 88, '하준': 95}
for name, score in scores.items():
if score >= 90:
print(name, score)출력 결과
민수 92
하준 953. get() 메서드 심화 예제 3개
존재하지 않는 키를 조회할 때 오류 대신 기본값을 반환하게 한다.
예제 1. 기본값 지정
Python 코드
student = {'이름': '민수', '나이': 17}
print(student.get('학교', '정보 없음'))출력 결과
정보 없음예제 2. 누적 계산에 get() 사용
Python 코드
words = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
count = {}
for word in words:
count[word] = count.get(word, 0) + 1
print(count)출력 결과
{'apple': 3, 'banana': 2, 'orange': 1}예제 3. 중첩 딕셔너리 안전 조회
Python 코드
data = {'user': {'name': '민수'}}
user = data.get('user', {})
print(user.get('name', '이름 없음'))
print(user.get('age', '나이 없음'))출력 결과
민수
나이 없음4. 데이터 추가 심화 예제 3개
새로운 키와 값을 딕셔너리에 넣는다.
예제 1. 학생 정보 추가
Python 코드
student = {'이름': '민수'}
student['학년'] = 2
student['반'] = 1
print(student)출력 결과
{'이름': '민수', '학년': 2, '반': 1}예제 2. 반복문으로 여러 값 추가
Python 코드
subjects = ['국어', '수학', '영어']
scores = {}
for subject in subjects:
scores[subject] = 100
print(scores)출력 결과
{'국어': 100, '수학': 100, '영어': 100}예제 3. 중첩 딕셔너리에 항목 추가
Python 코드
classes = {'1반': {'민수': 90}}
classes['1반']['지아'] = 95
classes['2반'] = {'하준': 88}
print(classes)출력 결과
{'1반': {'민수': 90, '지아': 95}, '2반': {'하준': 88}}5. 데이터 수정 심화 예제 3개
이미 존재하는 키의 값을 새 값으로 바꾼다.
예제 1. 단일 값 수정
Python 코드
student = {'이름': '민수', '점수': 80}
student['점수'] = 95
print(student)출력 결과
{'이름': '민수', '점수': 95}예제 2. 조건에 따라 값 수정
Python 코드
scores = {'민수': 92, '지아': 58, '하준': 75}
for name in scores:
if scores[name] < 60:
scores[name] = 60
print(scores)출력 결과
{'민수': 92, '지아': 60, '하준': 75}예제 3. 중첩 딕셔너리 값 수정
Python 코드
student = {'이름': '민수', '성적': {'수학': 80, '과학': 90}}
student['성적']['수학'] += 10
print(student)출력 결과
{'이름': '민수', '성적': {'수학': 90, '과학': 90}}6. 데이터 삭제 심화 예제 3개
del, pop(), clear() 등을 사용해 데이터를 제거한다.
예제 1. del로 삭제
Python 코드
student = {'이름': '민수', '나이': 17, '학교': '과학고'}
del student['나이']
print(student)출력 결과
{'이름': '민수', '학교': '과학고'}예제 2. pop()으로 삭제하며 값 받기
Python 코드
student = {'이름': '민수', '점수': 92}
removed = student.pop('점수')
print(removed)
print(student)출력 결과
92
{'이름': '민수'}예제 3. 조건에 맞는 항목 삭제
Python 코드
scores = {'민수': 92, '지아': 58, '하준': 75}
low_students = [name for name, score in scores.items() if score < 60]
for name in low_students:
del scores[name]
print(scores)출력 결과
{'민수': 92, '하준': 75}7. keys() 심화 예제 3개
딕셔너리의 모든 키를 확인한다.
예제 1. 키 목록 출력
Python 코드
student = {'이름': '민수', '나이': 17, '학교': '과학고'}
for key in student.keys():
print(key)출력 결과
이름
나이
학교예제 2. 키 존재 여부 확인
Python 코드
student = {'이름': '민수', '나이': 17}
if '나이' in student.keys():
print('나이 정보 있음')출력 결과
나이 정보 있음예제 3. 키를 리스트로 변환
Python 코드
score = {'국어': 90, '수학': 95, '영어': 87}
subjects = list(score.keys())
print(subjects)
print(subjects[0])출력 결과
['국어', '수학', '영어']
국어8. values() 심화 예제 3개
딕셔너리의 모든 값을 확인한다.
예제 1. 값 목록 출력
Python 코드
score = {'국어': 90, '수학': 95, '영어': 87}
for value in score.values():
print(value)출력 결과
90
95
87예제 2. 평균 계산
Python 코드
score = {'국어': 90, '수학': 95, '영어': 87}
avg = sum(score.values()) / len(score)
print(round(avg, 2))출력 결과
90.67예제 3. 특정 값 포함 여부
Python 코드
student = {'이름': '민수', '학교': '과학고'}
if '과학고' in student.values():
print('과학고 학생입니다.')출력 결과
과학고 학생입니다.9. items() 심화 예제 3개
키와 값을 동시에 꺼내 반복 처리한다.
예제 1. 키와 값 함께 출력
Python 코드
student = {'이름': '민수', '나이': 17, '학교': '과학고'}
for key, value in student.items():
print(key, ':', value)출력 결과
이름 : 민수
나이 : 17
학교 : 과학고예제 2. 조건 필터링
Python 코드
scores = {'민수': 92, '지아': 88, '하준': 95}
high = {name: score for name, score in scores.items() if score >= 90}
print(high)출력 결과
{'민수': 92, '하준': 95}예제 3. 값 기준 정렬
Python 코드
scores = {'민수': 92, '지아': 88, '하준': 95}
rank = sorted(scores.items(), key=lambda x: x[1], reverse=True)
print(rank)출력 결과
[('하준', 95), ('민수', 92), ('지아', 88)]10. 딕셔너리 병합 심화 예제 3개
여러 딕셔너리를 하나로 합친다.
예제 1. | 연산자 사용
Python 코드
d1 = {'a': 1, 'b': 2}
d2 = {'c': 3, 'd': 4}
result = d1 | d2
print(result)출력 결과
{'a': 1, 'b': 2, 'c': 3, 'd': 4}예제 2. update() 사용
Python 코드
student = {'이름': '민수'}
extra = {'나이': 17, '학교': '과학고'}
student.update(extra)
print(student)출력 결과
{'이름': '민수', '나이': 17, '학교': '과학고'}예제 3. 겹치는 키 병합
Python 코드
old = {'수학': 80, '과학': 90}
new = {'수학': 95, '영어': 87}
merged = old | new
print(merged)출력 결과
{'수학': 95, '과학': 90, '영어': 87}딕셔너리 종합 예제 코드 1개
아래 코드는 딕셔너리 생성, 조회, get(), 추가, 수정, 삭제, keys(), values(), items(), 병합을 모두 포함한 학생 성적 관리 종합 예제입니다.
종합 예제: 학생 성적 관리 프로그램
Python 코드
# 딕셔너리 종합 예제: 학생 성적 관리 프로그램
students = {
'101': {'이름': '민수', '성적': {'국어': 90, '수학': 95}},
'102': {'이름': '지아', '성적': {'국어': 88, '수학': 92}}
}
# 1. 데이터 추가
students['103'] = {'이름': '하준', '성적': {'국어': 85, '수학': 97}}
# 2. 데이터 수정
students['101']['성적']['국어'] = 93
# 3. get()으로 안전하게 조회
search_id = '104'
student = students.get(search_id, {'이름': '없음', '성적': {}})
print('조회 결과:', student['이름'])
# 4. keys(), values(), items() 활용
for sid, info in students.items():
name = info['이름']
scores = info['성적']
total = sum(scores.values())
avg = total / len(scores)
info['평균'] = avg
print(sid, name, scores, '평균:', avg)
# 5. 조건 필터링
excellent = {}
for sid, info in students.items():
if info['평균'] >= 90:
excellent[sid] = info['이름']
print('우수 학생:', excellent)
# 6. 병합
class_info = {'담임': '김교사', '학급': '2학년 1반'}
summary = class_info | {'학생수': len(students)}
print('학급 요약:', summary)
# 7. 삭제
removed = students.pop('102')
print('삭제된 학생:', removed['이름'])
# 8. 최종 출력
print('최종 학생 목록')
for sid, info in students.items():
print(sid, info)
주요 실행 흐름
조회 결과: 없음
101 민수 {'국어': 93, '수학': 95} 평균: 94.0
102 지아 {'국어': 88, '수학': 92} 평균: 90.0
103 하준 {'국어': 85, '수학': 97} 평균: 91.0
우수 학생: {'101': '민수', '102': '지아', '103': '하준'}
학급 요약: {'담임': '김교사', '학급': '2학년 1반', '학생수': 3}
삭제된 학생: 지아
최종 학생 목록핵심 정리표
| 번호 | 학습 요소 | 핵심 내용 |
|---|---|---|
| 1 | 딕셔너리 생성 | {} 또는 dict()를 이용하여 key:value 구조의 데이터를 만든다. |
| 2 | 값 조회 | 키를 이용해 원하는 값을 꺼낸다. |
| 3 | get() 메서드 | 존재하지 않는 키를 조회할 때 오류 대신 기본값을 반환하게 한다. |
| 4 | 데이터 추가 | 새로운 키와 값을 딕셔너리에 넣는다. |
| 5 | 데이터 수정 | 이미 존재하는 키의 값을 새 값으로 바꾼다. |
| 6 | 데이터 삭제 | del, pop(), clear() 등을 사용해 데이터를 제거한다. |
| 7 | keys() | 딕셔너리의 모든 키를 확인한다. |
| 8 | values() | 딕셔너리의 모든 값을 확인한다. |
| 9 | items() | 키와 값을 동시에 꺼내 반복 처리한다. |
| 10 | 딕셔너리 병합 | 여러 딕셔너리를 하나로 합친다. |