딕셔너리란?
사람은 누구든지 "이름" = "홍길동", "생일" = "몇월 며칠" 등으로 구별할 수 있다.
딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고, Key를 통해 Value를 얻는다.
이것이 딕셔너리의 가장 큰 특징이다.
딕셔너리는 어떻게 만들까?
{Key1:Value1, Key2:Value2, Key3:Value3, . . .}
[!] Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값과 변하지 않는 값 모두 사용할 수 있다.
>>> dic = {'name':'pey', 'phone':01044443333', 'birth':'1118'}
딕셔너리의 Key에는 정수 값도 들어올 수 있고, Value에는 문자열과 리스트도 넣을 수 있다.
딕셔너리 쌍 추가, 삭제하기
>>> a = {1: 'a'}
>>> a[2] = 'b' !!! 와 같이 입력하면 a에 Key와 Value가 각각 2와 'b'인 디셔너리 쌍이 추가된다.
>>> a
{1: 'a', 2: 'b'}
삭제하기
>>> del a[1] !! del a[key]처럼 입력하면 지정한 Key에 해당하는 {key:value} 쌍이 삭제된다.
>>> a
{2: 'b'}
딕셔너리에서 Key를 사용해 Value 얻기
>>> grade = {'pey':10, 'julliet':99}
>>> grade['pey']
10
>>> grade['julliet']
99
리스트나 튜플, 문자열은 요솟값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했다.
하지만 딕셔너리는 단 한 가지 방법뿐이다. 바로 Key를 사용해서 Value를 구하는 방법이다.
딕셔너리 관련 함수들
Key 리스트 만들기(Keys)
>>> a = {'name':'pey', 'phone':'01044447777', 'birth':'1118'}
>>> a.keys()
dict_keys(['name','phone','birth'])
3.0 이상 버전부터는 dict_keys 객체를 리스트로 변환하려면 아래와 같이 하면 된다.
>>> list(a.keys())
['name','phone','birth']
Value 리스트 만들기(values)
>>> a.values()
dict_values(['pey','01077774444','1118'])
Key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 Values 함수를 사용하면 된다.
Key, Value 쌍 얻기(items)
>>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
Key: Value 쌍 모두 지우기(clear)
>>> a.clear()
>>> a
{}
빈 리스트 [], 빈 튜플 (), 빈 딕셔너리 {}
Key로 Value 얻기(get)
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'0119993323'
get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다. 앞에서 살펴보았듯이 a.get('name')은 a['name']을 사용했을 때와 동일한 결과값을 돌려 받는다.
다만 다음 예제에서 볼 수 있듯이 a['nokey'] 처럼 존재하지 않는 키로 값을 가져오려 할 경우 오류를 발생시키고,
a.get('nokey')는 None을 돌려준다는 차이가 있다.
*a.get('nokey') 처럼 사용하는게 좋다고 생각한다, 실제 서비스를 돌린다고 생각하면 A라는 키를 제거했다,
A의 키를 가져오는 값이 있는데 a['A'] 처럼 되어있다면 오류가 발생할 것이다. 하지만 a.get('A')를 사용했다면 None이라는 결과를 반환할 것이고, 개발 시에 그에 대응하는 if 문을 작성해두면 오류발생을 해결하는데 많은 도움이 될 것이다.
해당 Key가 딕셔너리 안에 있는지 조사하기(in)
>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
정리
-딕셔너리는 키와 값으로 이루어진 자료형이고, 키는 유일해야 하며 순서가 없다.
-키가 중복되면 중복된 키 중 하나만 사용하고 나머지는 버린다. 그런데 그 하나가 무엇일지는 정확히 알 수 없다.
'Language > Python' 카테고리의 다른 글
| 점프 투 파이썬 - 불 자료형 (0) | 2019.07.08 |
|---|---|
| 점프 투 파이썬 - 집합 자료형 (0) | 2019.07.08 |
| 점프 투 파이썬 - 튜플 자료형 (0) | 2019.07.08 |
| 점프 투 파이썬 - 리스트 자료형 (2) | 2019.07.06 |
| 점프 투 파이썬 - 문자열 자료형 (0) | 2019.07.06 |
댓글