본문으로 건너뛰기

UZU Dev LogoUZU Dev LogoUZU-DEV

[Python] 자료 구조 : 딕셔너리

딕셔너리의 키-값 구조, 데이터 접근과 수정, 주요 메서드와 중첩 활용법을 정리한 글

2025년 9월 11일

[Python] 자료 구조 : 딕셔너리 썸네일

1. 딕셔너리(Dictionary)란?

딕셔너리는 키(Key)와 값(Value)을 한 쌍으로 저장하는 자료 구조다. 중괄호({})를 사용하며, 키를 통해 빠르게 값에 접근할 수 있다.

student = {
    "name": "Yuju",
    "age": 22,
    "major": "AI Engineering"
}
  • 키는 고유해야 함 (중복 불가)
  • 값은 중복 가능
  • 가변성(Mutable) → 생성 후 수정 가능

2. 키와 값 접근

print(student["name"])   # Yuju
print(student.get("age")) # 22
  • dict[key] → 해당 키의 값 반환 (없으면 오류)
  • dict.get(key) → 해당 키의 값 반환 (없으면 None)

3. 딕셔너리 수정

3.1 값 변경
student["age"] = 23
print(student)
# {'name': 'Yuju', 'age': 23, 'major': 'AI Engineering'}
3.2 새 키-값 추가
student["grade"] = "A"
print(student)
# {'name': 'Yuju', 'age': 23, 'major': 'AI Engineering', 'grade': 'A'}
3.3 삭제
del student["major"]   # 특정 키 삭제
grade = student.pop("grade")  # 꺼내면서 삭제
student.clear()        # 모든 데이터 삭제

4. 주요 메서드

person = {"name": "Yuju", "age": 22}

print(person.keys())    # dict_keys(['name', 'age'])
print(person.values())  # dict_values(['Yuju', 22])
print(person.items())   # dict_items([('name', 'Yuju'), ('age', 22)])
  • keys() : 키 전체 반환
  • values() : 값 전체 반환
  • items() : (키, 값) 쌍 반환

반복문과 함께 자주 사용된다.

for k, v in person.items():
    print(k, ":", v)

5. 딕셔너리 응용

  • 데이터 매핑 : 키를 기준으로 값 저장
  • 빈도수 계산 : 원소 등장 횟수 세기
  • 구조화된 데이터 표현 : JSON 형식과 유사
# 빈도수 계산 예시
text = "banana"
counter = {}

for ch in text:
    counter[ch] = counter.get(ch, 0) + 1

print(counter)  # {'b': 1, 'a': 3, 'n': 2}

6. 중첩 딕셔너리

딕셔너리 안에 또 다른 딕셔너리를 넣어 계층적 데이터를 표현할 수 있다.

students = {
    "1001": {"name": "Yuju", "major": "AI"},
    "1002": {"name": "HyeWon", "major": "CS"}
}

print(students["1001"]["name"])  # Yuju