딕셔너리(Dictionary) — 이름(Key)과 값(Value)을 한 쌍으로
리스트는 인덱스로 값을 찾았습니다. 이번에 배울 딕셔너리는 번호 대신 이름(Key)으로 값(Value)을 찾는 자료구조입니다. 사전을 찾아보는 것과 같은 원리로, 코드만 봐도 무슨 데이터인지 알 수 있게 해줘요.
요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠.
개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.
이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.
고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.
중간중간 빈칸 채우기랑 학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.

지금까지는 데이터를 값만 저장했습니다. 리스트나 튜플의 경우 순서대로 저장했죠.
student = ["홍길동", 17, 95]라면 student[0]은 이름, student[1]은 나이, student[2]는 점수였습니다. 그런데 이 코드만 보고 "17이 나이인지 학년인지 어떻게 알아요?"라고 묻는다면, 딱히 할 말이 없습니다. 그냥 그렇게 넣기로 정하고 넣어서. 항상 기억하고 있지 않으면 몇 번째 데이터가 무엇인지 알 수 없습니다.
그래서 사용하는 것이 딕셔너리(Dictionary)입니다.
사전을 생각해 봅시다. "Apple → 사과", "Banana → 바나나"처럼 단어와 뜻이 함께 저장되어 있죠. 파이썬 딕셔너리도 같습니다. 이름(Key)과 값(Value)을 한 쌍으로 저장해요.
키 : 값,
키 : 값
}
"이름": "홍길동",
"나이": 17,
"점수": 95
}
print(student["이름"])
print(student["점수"])
95
리스트는 student[0]처럼 번호(인덱스)로 값을 꺼냈습니다. 딕셔너리는 student["이름"]처럼 이름(Key)으로 값을 꺼냅니다. 몇 번째인지 기억할 필요 없이, 원하는 이름 키값만 알면 바로 값을 찾을 수 있어요.
print(student)
student["학교"] = "한빛고"
print(student)
del student["나이"]
print(student)
이미 있는 키에 값을 넣으면 수정, 없는 키에 값을 넣으면 추가, del로는 삭제합니다.
딕셔너리를 반복문으로 순회하는 방법은 세 가지가 있어요. 그중 세 번째(items())가 가장 많이 쓰입니다.
# 방법 1 · 키만
for key in student:
print(key)
# 방법 2 · 값만
for key in student:
print(student[key])
# 방법 3 · 키와 값 함께 (가장 많이 씀)
for key, value in student.items():
print(key, ":", value)
홍길동 17 95
이름 : 홍길동
나이 : 17
점수 : 95
① 키를 따옴표 없이 쓰면 오류가 납니다 — {이름: "홍길동"}(✗) 대신 {"이름": "홍길동"}(✔).
② 없는 키를 사용하면 KeyError가 발생합니다.
③ 리스트처럼 student[0]같은 인덱스는 사용할 수 없습니다. 반드시 Key를 써야 해요.
- 다음 코드가 "홍길동"을 출력하도록 빈칸을 채우시오.
student = {"이름": "홍길동"}
print(student[])
정답
- 리스트와 딕셔너리의 차이점을 서술하시오.
- 다음 코드의 실행 결과를 작성하시오.
student = {"이름": "김철수", "나이": 18}
print(student["나이"])
정답
2. 18
"이름": "김철수",
"나이": 17,
"학년": 1,
"점수": 95
}
print("=== 학생 정보 ===")
for key, value in student.items():
print(key, ":", value)
student["점수"] = 100
student["학교"] = "한빛고"
print()
print("=== 수정 후 ===")
for key, value in student.items():
print(key, ":", value)
이름 : 김철수
나이 : 17
학년 : 1
점수 : 95
=== 수정 후 ===
이름 : 김철수
나이 : 17
학년 : 1
점수 : 100
학교 : 한빛고
'Language > Python' 카테고리의 다른 글
| [고등학생부터, 파이썬] 14. 함수(Function) (0) | 2026.08.20 |
|---|---|
| [고등학생부터, 파이썬] 13. 자료구조 총정리 (0) | 2026.08.20 |
| [고등학생부터, 파이썬] 11. 튜플(Tuple)과 세트(Set) (0) | 2026.08.20 |
| [고등학생부터, 파이썬] 10. 리스트(List) (0) | 2026.08.20 |
| [고등학생부터, 파이썬] 09. 중첩 반복문 (feat. 별찍기 예제) (0) | 2026.08.19 |
댓글