5강 / 20강

딕셔너리 — 이름으로 꺼내는 서랍장

번호 대신 열쇠로 찾는다

딕셔너리 — 이름으로 꺼내는 서랍장
딕셔너리는 서랍마다 이름표가 붙은 서랍장입니다. 번호가 아니라 이름으로 엽니다.

리스트는 훌륭하지만 한 가지가 불편합니다. "민준이 점수"를 꺼내려면 민준이가 몇 번인지 알아야 해요.

이름들 = ["민준", "서연", "지호"]
점수들 = [95, 88, 76]

# 민준이 점수를 꺼내려면… 먼저 몇 번인지 찾아야 합니다
번호 = 이름들.index("민준")
점수 = 점수들[번호]

게다가 리스트 두 개가 따로 놀기 때문에, 한쪽만 정렬하면 짝이 어긋나 버립니다. 그래서 필요한 게 딕셔너리(dictionary)입니다. 국어사전처럼 낱말을 찾으면 뜻이 나오는 구조예요.

🔑
열쇠 (key)
"민준"
🗄️
서랍
한 쌍이 들어가는 자리
💎
값 (value)
95
넣기·꺼내기·바꾸기·지우기가 전부 '이름'으로 이루어집니다.
Python 브라우저에서 실행
딕셔너리를 도는 세 가지 방법.
Python 브라우저에서 실행

🎮 서랍장 실험실

열쇠로 값을 꺼내 보세요. 없는 열쇠를 넣으면 어떤 일이 벌어지는지가 핵심입니다. 그리고 리스트 두 개 방식과 나란히 놓고 비교해 보세요.

서랍장 — 열쇠로 값을 꺼내고, KeyError를 직접 만나 봅니다
불러오는 중…
get() 하나로 '처음 보는 열쇠'를 우아하게 처리합니다.
Python 브라우저에서 실행

딕셔너리 + 리스트 = 진짜 데이터

실전에서는 이 둘을 겹쳐서 씁니다. 한 사람 = 딕셔너리 하나, 여러 사람 = 딕셔너리들의 리스트. 여러분이 앞으로 만나게 될 거의 모든 데이터가 이 모양입니다.

딕셔너리들의 리스트 — 실전 데이터의 표준 모양
Python 브라우저에서 실행
TypeError: unhashable type — '바뀌는 것은 열쇠가 될 수 없다'는 뜻입니다.
Python 브라우저에서 실행
🤔 확인 문제
리스트와 딕셔너리의 가장 큰 차이는?
🤔 확인 문제
점수표.get("하윤", 0) 에서 "하윤"이 없을 때 결과는?
🤔 확인 문제
딕셔너리의 열쇠로 쓸 수 없는 것은?