Python 사전: 구조 및 해시 맵

마스터 Python 사전. 키-값 쌍 데이터를 저장하고, 가져오고, 처리하는 방법을 알아보세요. 매핑의 성능과 모범 사례를 이해합니다.

에디터에서 사용해 보세요

개요

사전은 틀림없이 Python에서 가장 중요하고 최적화된 데이터 구조입니다. 사전은 '키:값' 쌍에 저장된 데이터 값의 변경 가능한 모음입니다. 실제 사전을 상상해 보면 "키"는 찾고 있는 단어이고 "값"은 정의입니다. 이 페어링 구조를 사용하면 관계형 데이터를 검색, 업데이트 및 관리하는 것이 매우 효율적입니다.

내부적으로 Python 사전은 고도로 최적화된 해시 테이블(또는 해시 맵)로 구현됩니다. 이는 키로 값을 검색하는 것이 'O(1)' 상수 시간 작업임을 의미합니다. 사전에 10개의 항목이 포함되어 있든 1000만 개의 항목이 포함되어 있든 Python은 전체 컬렉션을 스캔할 필요 없이 즉시 값의 메모리 주소로 직접 이동할 수 있습니다.

사전을 정의하려면 콜론 `:`으로 구분된 키와 값과 함께 중괄호 `{}`를 사용합니다. 키는 불변 유형(예: 문자열, 정수 또는 튜플)이어야 합니다. 즉, 목록을 사전 키로 사용할 수 없습니다. 그러나 값은 목록, 개체 또는 깊게 중첩된 사전을 포함하여 절대적으로 무엇이든 될 수 있으므로 JSON과 같은 데이터 구조를 표현하는 데 적합합니다.

값에 접근하는 것은 대괄호 표기법(예: `user["name"]`)을 사용하여 수행됩니다. 그러나 키가 존재하지 않는 경우 이 접근 방식은 `KeyError`를 발생시켜 프로그램 실행을 즉시 중단합니다. 보다 안전한 코드를 작성하기 위해 전문가는 `.get()` 메서드(예: `user.get("name")`)를 사용합니다. 이 메서드는 키가 누락된 경우 `None`을 반환하거나 사용자 정의 기본값을 반환하여 불필요한 충돌을 방지합니다.

역사적으로 Python 사전은 완전히 순서가 지정되지 않았습니다. 그러나Python 3.7부터 사전은 공식적으로 삽입 순서 유지를 보장합니다. 즉, `.keys()`, `.values()` 또는 `.items()`와 같은 메서드를 사용하여 사전을 반복하면 항목이 원래 사전에 추가된 정확한 순서로 반환되며 해시 맵의 속도와 목록의 예측 가능성이 결합됩니다.

코드 및 실행 출력

중첩된 키-값 쌍을 많이 활용하여 사용자 구성 프로필을 만듭니다.

user = {
    "username": "coder123",
    "role": "admin",
    "active": True
}

user["last_login"] = "2026-04-10" # Adding a key
print(f"Username is {user['username']}")

# Iterating over key-value pairs
for key, value in user.items():
    print(f"{key}: {value}")
터미널 출력
Username is coder123
username: coder123
role: admin
active: True
last_login: 2026-04-10

단계별 구현

  • REST API에서 JSON 응답 처리
  • 고유 ID를 대규모 데이터 개체에 매핑
  • 애플리케이션 구성 매개변수 저장

자주 묻는 질문

존재하지 않는 키에 액세스하려고 하면 어떻게 되나요?

대괄호 표기법(user["name"])을 사용하면 KeyError가 발생합니다. 대신 던지지 않고 None을 반환하려면 user.get("name")을 사용하세요.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.