※ 해당 포스팅은 네이버 블로그에서 작성된 포스팅으로, 코드가 포함되어 있어 다음 주소에서 읽는 것이 용이하실 수 있습니다. (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 |
---|
댓글