본문 바로가기

Data analysis story

[Python]-파이썬 자료형, 딕셔너리(Dictionary)[딕셔너리 생성, 딕셔너리 쌍 추가, 삭제하기, 요소 접근, .keys(), .values(), .items(), .clear(), 자료형의 참과 거짓]

안녕하세요, 여러분!!!

오늘은 파이썬 자료형! 그 네 번째 시간으로

마지막 자료형인 딕셔너리에 대해 다루어 보도록 하겠습니다!!!!

이름”=”홍길동

학번”=201623124

주소”=”서울시

 

파이썬은 이러한 대응 관계를 나타낼 수 있는 자료형을 가지고 있는데

이것이 바로 딕셔너리(Dictionary)입니다.

 

딕셔너리는 키(key)와 값(value)의 쌍을 저장할 수 있는 객체로서

 

위의 예시에서는

이름”, “학번”, “주소 key이고

홍길동”, 201623124, “서울시value입니다.

 

다른 예시를 들어보면

이것이 키(key)와 값(value)의 구조입니다.

 

딕셔너리 생성

 

그렇다면 이러한 대응구조를 어떻게 생성할 수 있는 것일까요??

전체적인 구조는 이렇습니다!!

 

세트 자료형에서 썼던 { }기호를 사용하고

키와 값은 :로 나누며 각 요소들은 ,로 나누네요!!

 

key에는 변하지 않는 값을 사용하고,

value에는 변하는 값과 변하지 않는 값 모두 사용할 수 있습니다!!

 

따라서 key자리에는 리스트 자료형이 올 수 없습니다.

리스트는 변할 수 있기 때문이죠!!

튜플은 변하지 않으므로

key자리에 올 수 있겠네요!!

value에는 리스트나 튜플, 모두 넣을 수 있습니다.

 

딕셔너리 쌍 추가, 삭제하기, 요소 접근

 

딕셔너리는 리스트나 튜플과 다르게 순서가 없습니다!!

(세트 자료형과 같은 점이기도 하죠!)

 

이처럼 딕셔너리는 순서를 따지지 않기 때문에

인덱싱의 주소를 이용해 딕셔너리의 쌍을 추가하는 것이 아니라

key를 이용해 쌍을 추가합니다! (추가되는 순서의 원칙은 당연히 없습니다.)

이렇게요!!

 

[ ]안에 추가하고 싶은 key의 이름을 넣고

= 뒤에 추가하고 싶은 value를 넣으면

하나의 key, value 쌍이 추가되는 것이죠!!

요소를 삭제하고 싶으면

del 함수를 사용하는데요!

이때도 역시 인덱싱 주소가 없기 때문에

key를 넣어서 삭제합니다.

이렇게요!!

이러면 2라는 key에 해당되는 key, value 쌍이 지워집니다.

 

혹은 .pop을 이용해도 됩니다.

.pop은 리스트에서 특정 값을 돌려준 후 삭제하는 것이라고 배웠죠??

작동 원리는 딕셔너리에서도 같습니다!

, pop(key) 이렇게 괄호 안에 key를 입력해야겠죠!!

그러면 이제 딕셔너리 하나의 요소에도 어떻게 접근하는지도 알 수 있겠죠??

당연히 key를 사용해 접근하면 되겠죠!!

 

이렇게요!!
따라서 딕셔너리 aa[key]로 입력해서 key에 해당하는 value를 얻는 것입니다!

혹은 이런 방법도 있는데요!

딕셔너리 a a.get(key)로 입력해도 key에 해당하는 value을 수 있습니다.

 

다만, 존재하지 않는 key를 넣을 경우

a[key] key오류를 발생시키고

a.get(key)None을 리턴한다는 차이가 있습니다!!

 

어쨌든! 결론적으로 딕셔너리의 요소에 접근할 때는 key를 통해 접근하는 군요!!

위에서 살펴봤듯이 딕셔너리는 key가 굉장히 중요하네요!!

요소를 추가하고 싶을 때도 삭제하고 싶을 때도 모두 key를 사용했습니다.

따라서 딕셔너리에서 key는 중복 값이 있으면 안됩니다!!

 

이렇게 key에 중복 값이 있으면

불러올 때 어떤 key value를 불러올지 모르거든요!!

 

딕셔너리 관련 함수들

 

.keys()

딕셔너리 key, value 쌍의 요소들 중

key만 알고 싶다면

.keys()를 사용하면 됩니다.

key의 값만을 모아서

dict_keys라는 객체를 리턴해줍니다!!
(
리스트로 리턴해주면 메모리의 낭비가 생기기 때문에 dict_keys라는 객체를 리턴해주는 거라고 해요!!)

 

이렇게 리턴된 dict_keys 객체는

for문과 함께 사용될 수 있지만

 

리스트가 아니기 때문에 리스트 고유 함수들인 append, insert 등등을 사용하지 못하겠죠!!

 

(리스트로 변환하려면

이렇게 해주면 되기는 해요!!

 

(위처럼 for문과 함께 사용될 수 있어요!!)

 

.values()

마찬가지로 value의 값들만 얻고 싶다면

.values 함수를 호출하면 되는데요!

 

역시 dict_values라는 객체가 리턴됩니다.

그리고 dict_keys 객체와 마찬가지로 동일하게 사용하면 됩니다!!

 

.items()

keyvalue 쌍 모두를 얻고 싶을 때는

.items()를 사용합니다.

이때는 dict_items 객체를 돌려줍니다!

 

이렇게요!!

항목을 모두 순회해보고 싶다면

이렇게 dict_items 객체와

for문을 같이 사용하면 되겠죠!!

④ .clear()

딕셔너리 안의 key:value 쌍을 모두 지울 때는 .clear()를 사용합니다.

빈 딕셔너리가 되어 버리네요!!

 

이번 포스팅의 딕셔너리까지 해서

파이썬의 자료형에 모두 대해서 알아보았습니다!!

총 네 포스팅에 걸쳐서 다룰만큼

내용이 많았는데요!

마지막으로 자료형의 참과 거짓에 대해 간단히 말하고

자료형의 막을 내리려고 합니다!!

자료형에도 참과 거짓이 있습니다!!

자료형의 참과 거짓을 구분하는 기준은 다음과 같습니다.

문자열, 리스트, 튜플, 딕셔너리 등은 값이 비어 있으면 (“”, [], (), {}) 거짓이 됩니다!!

숫자일 때는 그 값이 0일 때 거짓이 되죠!

 

이렇게 해서 파이썬 자료형에 대한 포스팅을 마치도록 하겠습니다!!