C
Python/입문/Lesson 07

dict — Key-Value 저장의 표준

15분·theory
이 챕터
6/7

dict — Key-Value 저장의 표준

🎯 이 lesson 을 읽고 나면

이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.

  • ✅ dict 의 key 조건 + 충돌 처리
  • ✅ get · setdefault · pop · update 4개 메서드
  • ✅ dict comprehension + dict 병합 (PEP 584)

학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.

dict 7가지 패턴 — 코드 + 실행 결과

dict = key:value 짝. 이름 → 값 빠르게 찾을 때 (탐색 O(1)). 다른 언어의 Map·HashMap·Object.


1. 만들기

python
사람 = {"이름": "홍길동", "나이": 28, "직업": "개발자"}
빈_dict = {}
print(type(사람))         # <class 'dict'>
print(len(사람))          # 3 (key 개수)

{ key: value, key: value } — 콜론으로 짝 구분, 쉼표로 항목 구분.


2. 값 꺼내기

python
사람 = {"이름": "홍길동", "나이": 28}

print(사람["이름"])       # 홍길동
print(사람["나이"])       # 28

# ⚠️ 없는 key 는 KeyError
# print(사람["키"])       # KeyError: '키'

# 안전하게 — get()
print(사람.get("키"))     # None (에러 X)
print(사람.get("키", 0))  # 0 (기본값)

3. 추가·수정·삭제

python
사람 = {"이름": "홍길동"}

사람["나이"] = 28              # 새 key 추가
사람["이름"] = "이몽룡"        # 기존 key 수정

del 사람["나이"]
print(사람)                    # {'이름': '이몽룡'}

4. 존재 확인 — in

python
사람 = {"이름": "홍길동", "나이": 28}

if "이름" in 사람:
    print("이름 있음")

if "키" not in 사람:
    print("키 없음")

list 의 in 확인이지만, dict 의 inkey 확인.


5. 순회 (for)

python
사람 = {"이름": "홍길동", "나이": 28, "직업": "개발자"}

# key 만
for key in 사람:
    print(key)

# key + value 같이 — 가장 자주 사용
for key, value in 사람.items():
    print(f"{key}: {value}")

# value 만
for value in 사람.values():
    print(value)

실행 결과:

code
이름
나이
직업
이름: 홍길동
나이: 28
직업: 개발자
홍길동
28
개발자

6. 중첩 dict (실무 패턴)

python
회사 = {
    "이름": "코드마스터",
    "직원": [
        {"이름": "홍길동", "역할": "개발"},
        {"이름": "이몽룡", "역할": "디자인"},
    ],
}

print(회사["직원"][0]["이름"])    # 홍길동
print(회사["직원"][1]["역할"])    # 디자인

회사["직원"].append({"이름": "성춘향", "역할": "기획"})
print(len(회사["직원"]))          # 3

JSON·API 응답이 정확히 이 모양 — Python dict 가 JSON 친화적.


7. 자주 쓰는 패턴 — 카운터

python
글 = "사과 배 사과 감 사과 배"
단어들 = 글.split()

카운트 = {}
for 단어 in 단어들:
    카운트[단어] = 카운트.get(단어, 0) + 1

print(카운트)                   # {'사과': 3, '배': 2, '감': 1}

get(key, 0) = "있으면 그 값, 없으면 0" — 카운트·누적 패턴 핵심.


list vs dict 언제 무엇을?

listdict
접근 방식[숫자 인덱스]["key"]
순서있음있음 (3.7+)
탐색 속도O(n)O(1)
사용처여러 개 묶기이름으로 찾기

한 줄 요약

작업문법
만들기{"key": "value"}
꺼내기d["key"] / d.get("key", 기본)
추가·수정d["key"] = 값
삭제del d["key"]
존재 확인"key" in d
순회for k, v in d.items():

🐍 실행해보기 — dict — 직접 실행

위 개념을 실제로 코드로 실행해보세요. 값을 바꿔가며 어떻게 동작하는지 직접 확인하는 게 가장 빠른 학습.
✏️ Python 코드
📟 콘솔 출력
▶ 실행 버튼을 눌러보세요
🐍 Pyodide로 실제 Python 실행 — 첫 실행 시 로딩 3~5초 소요

🤖 AI 에게 이렇게 요청해보세요

이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.

  • "이 list 중복 제거를 set 으로 바꿔줘"
  • "이 dict 병합을 dict | dict (Python 3.9+) 로 바꿔줘"

왜 이게 토큰을 줄이나

개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.

먼저 읽으면 좋은 개념: 함수 정의
dict — Key-Value 저장의 표준 - Python