사전(Dictionary)은 여러 객체를 저장하기 위한 범용 데이터 구조로 정의됩니다. 사전은 키(Key) 집합과 연결되어 있으며, 각 키에는 하나의 값(Value)이 대응됩니다. 특정 키가 주어지면 사전은 해당 키와 연관된 값을 즉시 반환합니다.
사전의 기본 개념
예를 들어, 교실 시험 결과를 사전으로 표현할 수 있습니다. 이때 학생 이름이 키가 되고, 점수가 값이 됩니다.
results = {'Anik' : 75,
'Aftab' :80,
'James' : 85,
'Manisha': 77,
'Suhana' :87,
'Margaret': 82}위 예제에서 'Anik'이라는 키를 조회하면 75라는 값이 반환되는 방식입니다. 이처럼 사전은 키-값(Key-Value) 쌍으로 데이터를 관리하며, 키를 통해 값에 빠르게 접근할 수 있다는 것이 가장 큰 특징입니다.
사전의 주요 연산
사전은 일반적으로 다음과 같은 다양한 연산을 지원합니다.
1. 값 조회 (Retrieve)
키를 기반으로 값을 가져옵니다. 사용하는 프로그래밍 언어에 따라 존재하지 않는 키를 조회할 때 기본값(default value)을 반환하거나 예외(exception)를 발생시킵니다. 예를 들어 파이썬에서는 get() 메서드를 사용하면 기본값을 지정할 수 있습니다.
2. 값 삽입 및 갱신 (Insert / Update)
새로운 키-값 쌍을 추가하거나 기존 값을 수정합니다. 일반적으로 키가 사전에 존재하지 않으면 새로운 키-값 쌍이 삽입되고, 이미 존재하는 키라면 해당 키의 값이 새로운 값으로 덮어씌워집니다.
3. 키-값 쌍 삭제 (Remove / Delete)
특정 키와 그에 대응하는 값을 사전에서 제거합니다. 파이썬에서는 del 문이나 pop() 메서드를 활용해 삭제할 수 있습니다.
4. 키 존재 여부 확인 (Membership Test)
특정 키가 사전에 존재하는지 검증합니다. 값을 조회하기 전에 키의 존재 여부를 먼저 확인하면 오류를 예방할 수 있습니다.
사전 순회(Iteration) 시 주의점
대부분의 프로그래밍 언어에서 사전은 키 또는 값 전체를 반복(iteration)하여 순회하는 기능을 지원합니다. 다만 주의할 점이 있습니다.
사전의 항목들은 순서가 없다(unordered)는 것입니다. 따라서 사전을 반복문으로 순회하면 항목들이 무작위(random) 순서로 반환될 수 있습니다. 만약 정렬된 순서로 데이터를 처리해야 한다면, 키나 값을 미리 정렬한 뒤 순회하는 것이 좋습니다.
마무리
사전은 키를 통해 값에 빠르게 접근할 수 있는 강력하고 유연한 자료구조입니다. 조회, 삽입·갱신, 삭제, 존재 여부 확인이라는 네 가지 핵심 연산만 잘 이해하면 실무에서 데이터를 효율적으로 관리하는 데 큰 도움이 됩니다. 다만 항목의 순서가 보장되지 않는다는 특성을 항상 염두에 두고 사용해야 한다는 점을 잊지 마세요.