공부/자료구조

딕셔너리(Dictionary)란?

셩잇님 2023. 6. 2. 23:45
반응형

 

 

1. 딕셔너리란?

딕셔너리(맵, 연관 배열, 심볼 테이블이)란 키-값 쌍의 데이터를 저장하는 추상 데이터 유형입니다. 연결된 키를 기반으로 값을 효율적으로 삽입, 삭제 및 검색할 수 있습니다. 각 키는 고유하며 각 값은 모든 유형의 데이터가 될 수 있습니다. 딕셔너리에서 키를 조회하면 딕셔너리는 연관된 값을 반환합니다.

 

2. 딕셔너리의 주요 개념

키-값 쌍: 딕셔너리는 요소를 키-값 쌍으로 저장하며, 각 키는 컬렉션 내에서 고유하고 각 키는 해당 값과 연관됩니다. 키는 연결된 값에 액세스하기 위한 식별자 또는 색인 역할을 합니다. 값은 정수, 문자열, 객체 또는 기타 데이터 구조와 같은 모든 데이터 유형이 될 수 있습니다.

효율적인 조회: 딕셔너리가 제공하는 기본 작업은 특정 키와 연관된 값을 검색하는 것입니다. 이 연산은 일반적으로 O(1)의 시간 복잡도로 수행되므로 매우 효율적입니다. 딕셔너리의 기본 구현은 해싱 또는 트리 구조와 같은 다양한 기술을 사용하여 빠른 조회를 달성합니다.

삽입 및 삭제: 딕셔너리는 새로운 키-값 쌍을 삽입하고 기존 쌍을 제거하는 기능을 지원합니다. 삽입은 값을 고유 키에 연결하는 작업으로, 일정한 시간 내에 수행할 수 있습니다. 삭제는 딕셔너리에서 키-값 쌍을 제거하여 후속 작업에서 특정 쌍 없이 딕셔너리를 찾거나 업데이트할 수 있도록 합니다.

키 고유성: 딕셔너리의 키는 고유해야 합니다. 새 키-값 쌍이 기존 키에 삽입되면 특정 구현에 따라 해당 키와 연결된 기존 값을 덮어쓰거나 업데이트할 수 있습니다.

반복: 딕셔너리는 키나 값 또는 둘 모두를 반복하는 메서드를 제공하는 경우가 많습니다. 이를 통해 딕셔너리의 모든 요소를 순회하고 처리할 수 있습니다.

동적 크기: 딕셔너리는 키-값 쌍이 추가되거나 제거될 때 동적으로 커지거나 작아질 수 있습니다. 고정된 크기의 메모리를 할당할 필요 없이 다양한 수의 요소를 효율적으로 처리할 수 있습니다.

 

3. 딕셔너리의 단점
정렬되어 있지 않음: 딕셔너리는 데이터를 정렬된 순서로 저장하지 않습니다.
특정 작업에서 느림: 딕셔너리는 최소값 또는 최대값을 찾는 것과 같은 작업에서 느릴 수 있습니다.

 

4. 딕셔너리의 활용
데이터베이스에서 데이터 색인 및 검색
구성 설정 또는 옵션 저장
컬렉션에서 요소의 발생 횟수 계산
캐시 또는 메모화 기술 구현
컴파일러 및 인터프리터를 위한 심볼 테이블
효율적인 조회 테이블 및 해시 맵과 같은 데이터 구조 구현

 

5. 언어별 딕셔너리의 구현
딕셔너리은 프로그래밍 언어마다 다른 방식으로 구현됩니다. Python에서는 '딕셔너리', Java에서는 '맵', C++에서는 '해시맵' 등과 같이 다양한 이름으로 언엄다 내장 딕셔너리 데이터 유형을 제공하는 경우가 많습니다.

 

6. 결론

전반적으로 딕셔너리는 다양한 데이터를 저장하는 데 사용할 수 있는 다목적 데이터 구조입니다. 조회에 효율적이며 많은 양의 데이터를 저장할 수 있습니다. 하지만 정렬되지 않으며 특정 작업의 경우 속도가 느려질 수 있습니다.

 

 

 

반응형

'공부 > 자료구조' 카테고리의 다른 글

해시 테이블(Hash-Table)이란?  (0) 2023.06.03
레드 블랙 트리(red-black tree)란?  (0) 2023.06.02
이진 트리(Binary Tree)란?  (0) 2023.04.02
트리(Tree)란?  (0) 2023.04.01
해시 맵(Hash map)이란?  (0) 2023.03.31