본문 바로가기
자료구조

딕셔너리(Dictionary) 자료형이란?

by ElectroPy 2019. 11. 5.

※ 해당 포스팅은 네이버 블로그에서 작성된 포스팅으로, 코드가 포함되어 있어 다음 주소에서 읽는 것이 용이하실 수 있습니다. (https://junwha0511.blog.me/221698243080)

 

기존의 배열, 리스트와의 차이점

딕셔너리 자료형은 파이썬에서 사용하는 자료형으로,

Key 값과 Value 값으로 이루어져 있습니다.

 

기존의 리스트나 배열에서는 숫자 인덱스로 값(Value)을 참조했지만,

딕셔너리에서는 문자로도 값을 참조할 수 있습니다.

 

파이썬에서 딕셔너리를 사용하는 방법

1. 초기화

파이썬에서 딕셔너리는 아래와 같이 초기화 할 수 있습니다.

 

dict = {} dict = {'A':1, 'B':'C', 1:'A'}

 

 

2. 키-값 쌍 추가

딕셔너리에 키-값 쌍을 아래와 같이 추가할 수 있습니다.

 

dict['A'] = 1 dict[1] = 0

 

 

3. 요소 삭제

딕셔너리에서 요소를 삭제하는 방법은 리스트와 동일하게 del 키워드를 사용하는 것입니다.

 

dict = {'A':1, 'B':'C', 1:'A'} del dict['A'] del dict['B'] del dict[1]

 

 

4. 반복문에서의 사용

Value들에 대해 for문을 사용하고 싶다면 아래와 같은 방법을 사용합니다.

 

dict = {'A':1, 'B':'C', 1:'A'} for el in dict: print(el)

 

 

Key들에 대해 for문을 사용하고 싶다면 아래와 같은 방법을 사용합니다.

 

dict = {'A':1, 'B':'C', 1:'A'} for key in dict.keys(): print(el)

 

 

5. Key가 딕셔너리 내에 있는지 검사하기

 

if 'A' in dict: print(dict['A'])

 

 

C언어에서 딕셔너리를 사용하는 방법

C언어에는 딕셔너리 자료형이 존재하지 않지만, 유사하게 구현할 수 있습니다.

 

'아두이노 16x2 LCD 한글 출력 라이브러리(https://junwha0511.blog.me/221529144374)'를 개발하는 데 해당 자료형을 사용하였습니다.

 

 

C언어에서는 Key 배열과 Value 배열을 따로 정의하여 같은 인덱스에 오는 값들이 서로 매칭된다는 아이디어를 사용합니다.

단, C++을 사용해 제네릭 프로그래밍으로 구현하지 않는 이상 Key와 Value가 각각 한가지 자료형으로만 가능하다는 한계가 있습니다.

(물론 C++에는 이것보다 더 좋은 자료구조들이 라이브러리에 존재할 것이라고 생각합니다.)

 

char key[5] = {'A','B','C','D','E'}; int value[5] = {1,2,3,4,5};

 

 

C언어에서는 key 값을 넣었을 때 value를 리턴하는 함수를 따로 구현합니다.

 

int dictionary(char _key){ int i; for(i=0;i<5;i++){ if(_key==key[i]){ return value[i]; } }

 

 

한글 출력 라이브러리에서는 각 자모와 매칭되는 인덱스에 바이트 배열 포인터를 연결시켜 유용하게 사용하였습니다.

 

포스팅을 마치겠습니다.

 

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

그래프(Graph) 자료구조란?  (0) 2019.11.05

댓글