마이크로 파이썬 배우기 7 – 키와 값이 쌍으로 이루어진 배열형 자료형인 Dictionary

마이크로 파이썬 배우기 7 – 키와 값이 쌍으로 이루어진 배열형 자료형인 Dictionary

Dictionary 자료형

마이크로파이썬의 배열형 자료형 중에 기존에 설명한 LIst 및 Tupple 외에도 Dictionary 형태의 자료형이 있다.

Dictionary형 자료형은 기본적으로는 List 형태와 유사하나, List 자료형이 단지 값으로만 구성된데 반하여, 다음과 같이 키(Key)와, 값(Value)의 쌍으로 되어 있다는 특징이 있다.

weather1={‘TMAX’:35, ‘TMIN’:25, ‘rain’:’10ml’, ‘wind’:’low’}

이러한 Dictionary형은 마치 사전에서 검색 값을 찾고, 이에 대한 설명을 찾는 것과 유사한 방식이어서, dictionary type이라고 하는데, 굳이 배열 내 순서를 기억하지 않아도 키값만 알고 있으면, 이 키값을 이용해서 이에 대응하는 값을 읽는 방식이다.

이러한 형태는 특히 인터넷 API 등을 사용할 때 자료를 JSON 방식으로 받는 경우와 아주 유사해서, JSON 형태의 자료를 외부에서 받아 사용할 때 아주 활용도가 높다.

참고 – 기상 API 단기예보를 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}