[파이썬 자료형] 딕셔너리 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 쌍 얻기 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)을 리턴하게 된다.
'파이썬 > 파이썬 기본 문법' 카테고리의 다른 글
[파이썬 조건문] if elif else (0) | 2018.12.07 |
---|---|
[파이썬 자료형] 집합자료형 set (0) | 2018.12.07 |
[파이썬 자료형] 튜플 tuple (0) | 2018.12.06 |
[파이썬 자료형] 리스트 list 관련 함수 (0) | 2018.12.06 |
[파이썬 자료형] 리스트 list (0) | 2018.12.06 |
댓글