본문 바로가기
파이썬/파이썬 기본 문법

[파이썬 자료형] 딕셔너리 Dictionary

by Nov19 2018. 12. 6.
반응형



[파이썬 자료형] 딕셔너리 Dictionary


이름 = 홍길동, 나이 = 30 과 같이 대응관계를 갖고 있는 자료형을 파이썬에서는 딕셔너리 Dictionary라고 한다.

딕셔너리는 Key와 Value라는 것을 한 쌍으로 갖는 자료형이다.

위의 예로 '이름'은 key(키) 이고 '홍길동'은 value(값)이 된다.


딕셔너리 생성 방법

중괄호로 묶고 키와 값을 콜론으로 키와 값을 쌍을 콤마로 구분하여 생성한다.

{Key1:Value1, Key2:Value2, Key3:Value3}

키는 정수, 문자열을 사용할 수 있고, 값은 어떠한 자료형이든 상관없다.


리스트나 튜플은 인덱스가 있는 순서가 있는 자료이나 딕셔너리는 순서가 없다.

값을 먼저 추가 했다고 앞에 나오지 않는다. 

딕셔너리는 순서가 없기 때문에 인덱싱이나 슬라이싱은 할 수 없고 

Key를 사용해서 Value를 얻어내야만 한다. 

특정한 Key의 Value를 얻기 위해서는 "딕셔너리 변수[Key]"를 사용한다.


딕셔너리 쌍(키, 값) 추가하기



딕셔너리 요소 삭제하기 del dic[key] 

지정한 key에 해당하는 {key : value} 쌍이 삭제된다.


딕셔너리 만들 때 주의할 사항

딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다. 

이때 꼭 먼저 쓴 것이 무시되는 것은 아니고 어떤 것이 무시될지는 예측할 수 없다.


동일한 Key가 존재하면 어떤 Key에 해당하는 Value를 불러야 할지 알 수 없기 때문이다.

또 Key에 리스트는 쓸 수 없다는 것이다. 하지만 튜플은 Key로 쓸 수 있다. 

딕셔너리의 Key로 쓰려면 변하지 않는 값이어야 한다.

리스트를 Key로 설정하면 리스트를 키 값으로 사용할 수 없다는 형 오류(TypeError)가 발생한다.


TypeError: unhashable type


Value에는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있다.


딕셔너리 관련 함수들

Key 리스트 만들기 keys()

dic.keys()는 딕셔너리 dic의 Key만을 모아서 dict_keys라는 객체를 리턴한다.

이 객체는 리스트를 사용하는 것과 동일하게 사용할 수 있다.


Value 리스트 만들기 values()

Key를 얻는 것과 마찬가지 방법으로 Value만 모아 dict_values 객체가 리턴되며 
이 객체는 리스트를 사용하는 것과 동일하게 사용할 수 있다.

Key, Value 쌍 얻기 items()

items 함수는 key와 value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.



딕셔너리 요소 모두 지우기 clear()

clear() 함수는 딕셔너리 안의 모든 요소를 삭제하고 빈 딕셔너리 { }로 표현한다.


Key로 Value얻기 get()

dic.get('name')은 dic['name']을 사용했을 때와 동일한 결과값을 돌려받는다.

존재하지 않는 키('job')로 값을 가져오려고 할 경우 

dic['job']을 사용했을 때 KeyError 오류를 발생시키고 

dic.get('job')을 사용했을 때 None을 리턴한다는 차이가 있다.


딕셔너리 안에 찾으려는 key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때

get(key, default value)을 사용하면 편리하다.


해당 Key가 딕셔너리 안에 있는지 조사하기 in

'name'은 딕셔너리의 key 중 하나이다. 

'name' in a를 호출하면 참(True)을 리턴한다. 

반대로 'job' 은 딕셔너리 안에 존재하지 않는 key이므로 거짓(False)을 리턴하게 된다.



반응형

댓글