Dictionary 자료형
마이크로파이썬의 배열형 자료형 중에 기존에 설명한 LIst 및 Tupple 외에도 Dictionary 형태의 자료형이 있다.
Dictionary형 자료형은 기본적으로는 List 형태와 유사하나, List 자료형이 단지 값으로만 구성된데 반하여, 다음과 같이 키(Key)와, 값(Value)의 쌍으로 되어 있다는 특징이 있다.
weather1={‘TMAX’:35, ‘TMIN’:25, ‘rain’:’10ml’, ‘wind’:’low’}
이러한 Dictionary형은 마치 사전에서 검색 값을 찾고, 이에 대한 설명을 찾는 것과 유사한 방식이어서, dictionary type이라고 하는데, 굳이 배열 내 순서를 기억하지 않아도 키값만 알고 있으면, 이 키값을 이용해서 이에 대응하는 값을 읽는 방식이다.
이러한 형태는 특히 인터넷 API 등을 사용할 때 자료를 JSON 방식으로 받는 경우와 아주 유사해서, JSON 형태의 자료를 외부에서 받아 사용할 때 아주 활용도가 높다.
사용 선언
Dictionary 자료형을 생성하는 방법은 다음과 같이 선언하면 된다. 생성 시 괄호는 대괄호 { }를 사용해야 한다.
weather1={ } ==> 내용이 없는 상태로 생성
이렇게 생성된 dictionary에 특정 키의 값을 추가하려면 다음과 같은 방법을 사용하면 된다.
>>> weather1[‘ice’]=”none”
또는 처음부터 다음과 같이 초기값을 지정한 상태로, Dictionary fmf todtjdgkf tneh dlTek.
weather1={‘TMAX’:35, ‘TMIN’:25, ‘rain’:’10ml’, ‘wind’:’low’} ==> 초기값있는 형태로 생성
내용 확인 및 특정 키의 값 참조
Dictionary의 내용을 확인하는 방법은 다음 방법을 사용하면 된다.
방법 1 : 그냥 dictionary의 이름을 입력하는 방법이다.
위에서 생성한 weather1 dictionary의 내용을 다음과 같이 확인할 수 있다.
>>> weather1
결과==> {‘wind’: ‘low’, ‘TMAX’: 35, ‘rain’: ’10ml’, ‘TMIN’: 25}
방법 2 : dict.items( ) 명령을 이용하는 방법이다. 저장된 내용을 리스트 형태로 반환해 준다.
위에서 생성한 weather1 dictionary의 내용을 다음과 같이 확인할 수 있다.
>>> weather1.items()
결과==> dict_items([(‘wind’, ‘low’), (‘TMAX’, 35), (‘rain’, ’10ml’), (‘TMIN’, 25)])
특정 키의 값을 참조하려면 다음과 같이, dictionary 이름과 중괄호 [ ] 속에 키값을 넣어주면 된다.
>>> weather1[‘rain’]
결과 ==> ’10ml’
키 들만 목록으로 보려면 dict.keys( )를 이용하면 된다.
<예제>
>>> weather1={‘TMAX’:35, ‘TMIN’:25, ‘rain’:’10ml’, ‘wind’:’low’}
>>> weather1.keys()
dict_keys([‘wind’, ‘TMAX’, ‘rain’, ‘TMIN’])
값들만 목록 형태로 보려면 dict.values( )를 이용한다.
>>> weather1.values()
dict_values([‘low’, 35, ’10ml’, 25])
추가와 삭제, 결합
Dictionary 요소에 새로운 요소들을 추가하려면, 다음과 같이, dictionary 이름과 중괄호 [ ] 속에 키값에 이에 대응해서 넣어줄 값을 지정해 주면 된다.
>>> weather1
{‘fog’: ‘low’, ‘rain’: ’10ml’, ‘TMIN’: 25, ‘TMAX’: 35}
>>> weather1[‘ice’]=”none”
>>> weather1
{‘fog’: ‘low’, ‘ice’: ‘none’, ‘rain’: ’10ml’, ‘TMIN’: 25, ‘TMAX’: 35}
구성요소 중 특정한 키값의 요소를 추출/삭제하려는 경우에는 dict.pop( ) 을 사용하게 된다.
이 명령으로 해당 키값의 요소가 반환되며, 원래의 Dictionary에서는 해당 키와 값이 삭제된다.
>>> weather1
{‘fog’: ‘low’, ‘wind’: ‘low’, ‘rain’: ’10ml’, ‘TMIN’: 25, ‘TMAX’: 35}
>>> weather1.pop(‘wind’)
‘low’
>>> weather1
{‘fog’: ‘low’, ‘rain’: ’10ml’, ‘TMIN’: 25, ‘TMAX’: 35}
서로 다른 두 개의 Dictionary를 합치는 방법은 dict.update( )를 이용하면 된다.
>>> newtemp1={‘fog’:’low’}
>>> weather1.update(newtemp1)
>>> weather1
{‘fog’: ‘low’, ‘wind’: ‘low’, ‘rain’: ’10ml’, ‘TMIN’: 25, ‘TMAX’: 35}

