본문 바로가기
Language/Python

[고등학생부터, 파이썬] 12. 딕셔너리(Dictionary)

by kellis 2026. 8. 20.
반응형
고등학생부터, 파이썬 · 12화

딕셔너리(Dictionary) — 이름(Key)과 값(Value)을 한 쌍으로

리스트는 인덱스로 값을 찾았습니다. 이번에 배울 딕셔너리는 번호 대신 이름(Key)으로 값(Value)을 찾는 자료구조입니다. 사전을 찾아보는 것과 같은 원리로, 코드만 봐도 무슨 데이터인지 알 수 있게 해줘요.

이 시리즈를 시작하며

요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠. 

개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.

이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.

 

고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.

중간중간 빈칸 채우기학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.

 

Chapter 28
딕셔너리(Dictionary)

지금까지는 데이터를 값만 저장했습니다. 리스트나 튜플의 경우 순서대로 저장했죠.

student = ["홍길동", 17, 95]라면 student[0]은 이름, student[1]은 나이, student[2]는 점수였습니다. 그런데 이 코드만 보고 "17이 나이인지 학년인지 어떻게 알아요?"라고 묻는다면, 딱히 할 말이 없습니다. 그냥 그렇게 넣기로 정하고 넣어서.  항상 기억하고 있지 않으면 몇 번째 데이터가 무엇인지 알 수 없습니다.

그래서 사용하는 것이 딕셔너리(Dictionary)입니다.

선생님 설명

사전을 생각해 봅시다. "Apple → 사과", "Banana → 바나나"처럼 단어와 뜻이 함께 저장되어 있죠. 파이썬 딕셔너리도 같습니다. 이름(Key)값(Value)을 한 쌍으로 저장해요.

기본 문법
python
변수 = {
    키 : 값,
    키 : 값
}
예제 · 학생 정보 딕셔너리
python
student = {
    "이름": "홍길동",
    "나이": 17,
    "점수": 95
}

print(student["이름"])
print(student["점수"])
실행 결과
홍길동
95
리스트와 다른 점

리스트는 student[0]처럼 번호(인덱스)로 값을 꺼냈습니다. 딕셔너리는 student["이름"]처럼 이름(Key)으로 값을 꺼냅니다. 몇 번째인지 기억할 필요 없이, 원하는 이름 키값만 알면 바로 값을 찾을 수 있어요.

값 수정·추가·삭제하기
python
student["점수"] = 100
print(student)

student["학교"] = "한빛고"
print(student)

del student["나이"]
print(student)
실행 결과
{'이름': '홍길동', '나이': 17, '점수': 100}
{'이름': '홍길동', '나이': 17, '점수': 100, '학교': '한빛고'}
{'이름': '홍길동', '점수': 100, '학교': '한빛고'}

이미 있는 키에 값을 넣으면 수정, 없는 키에 값을 넣으면 추가, del로는 삭제합니다.

 

반복문으로 순회하기

딕셔너리를 반복문으로 순회하는 방법은 세 가지가 있어요. 그중 세 번째(items())가 가장 많이 쓰입니다.

python
student = {"이름": "홍길동", "나이": 17, "점수": 95}

# 방법 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
len()
python
print(len(student))
실행 결과
3
자주 하는 실수

① 키를 따옴표 없이 쓰면 오류가 납니다 — {이름: "홍길동"}(✗) 대신 {"이름": "홍길동"}(✔).

② 없는 키를 사용하면 KeyError가 발생합니다.

③ 리스트처럼 student[0]같은 인덱스는 사용할 수 없습니다. 반드시 Key를 써야 해요.

빈칸 채우기
  1. 다음 코드가 "홍길동"을 출력하도록 빈칸을 채우시오.
    python
    student = {"이름": "홍길동"}
    print(student[])
정답
"이름" — student["이름"]처럼 Key를 문자열로 넣어야 합니다.
학교 시험 유형
  1. 리스트와 딕셔너리의 차이점을 서술하시오.
  2. 다음 코드의 실행 결과를 작성하시오.
    python
    student = {"이름": "김철수", "나이": 18}
    print(student["나이"])
정답
1. 리스트는 데이터를 순서(인덱스)로 저장·조회하지만, 딕셔너리는 이름(Key)과 값(Value)을 한 쌍으로 저장하고 Key로 값을 조회합니다.

2. 18
종합 예제 · 학생 정보 관리 프로그램
python
student = {
    "이름": "김철수",
    "나이": 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
학교 : 한빛고
다음 화 예고 — 13화에서는 지금까지 배운 리스트·튜플·세트·딕셔너리를 한자리에 놓고 비교하고, 딕셔너리 안에 리스트를 넣는 것처럼 여러 자료구조를 함께 쓰는 법을 다뤄볼게요.
반응형

댓글