딕셔너리 자료형이란?
말그대로 '사전'이다.
대응 관계를 나타내는 자료형인 딕셔너리는
Key와 Value 라는 것을 한 쌍으로 갖는 자료형이다.
딕셔너리의 가장 큰 특징은 리스트나 튜플처럼 순차적으로 해당 요소값을 구하지않고
Key를 통해 Value 를 얻는다.
딕셔너리는 어떻게 만들까?
기본적인 딕셔너리의 모습
{Key1:Value1, Key2:Value2, Key:Value3 ...}
★key에는 변하지 않는 값을 사용
Value에는 변하는 값, 변하지 않는값 모두 사용가능
Value 에 리스트도 넣을 수 있음.
>>>a= { 'a':[1,2,3]}
딕셔너리 쌍 추가, 삭제하기
1. 딕셔너리 쌍 추가
>>>a = {1:'a'}
>>>a[2] = 'b'
>>>a
{2:'b', 1:'a'}
a 에 2라는 Key 와 'b' 라는 Value 쌍을 넣었음
>>>a['name'] = 'pey'
{'name':'pey', 2:'b', 1:'a'}
딕셔너리 a에 'name':'pey' 라는 쌍이 추가됨.
>>>a[3] = [1,2,3]
{'name': pey', 3:[1,2,3], 2:'b', 1:'a'}
Key는 3, Value 는 [1,2,3] 을 가지는 한쌍이 추가됨.
2. 딕셔너리 요소 삭제하기
>>>del a[1]
>>>a
{'name':'{pey', 3:[1,2,3], 2:'b'}
del a[Key]를 하여 지정한 Key에 해당하는 {key : Value} 쌍이 삭제 됨.
★딕셔너리를 사용하는 방법
딕셔너리에서 Key 사용해 Value 얻기
>>>grade = {'Pey' : 10, 'julliet' : 99}
>>>grade['pey']
10
>>>grade['julliet']
99
리스트나 튜플,문자열은 요소값을 얻어내고자 할 때 인덱싱이나 슬라이싱을 이용
하지만 딕셔너리에서는 단 한 가지 방법 뿐.
바로 Key를 사용해서 Value를 얻어내는 방법.
어떤 Key의 Value 를 얻기 위해서는 '딕셔너리 변수[Key]'를 사용.
딕셔너리를 만들 때 주의할 사항
1. 딕셔너리에서 Key 는 고유한 값이므로 중복되는 Key 값을 설정하면
하나를 제외한 나머지 것들은 모두 무시됨.
어떤 것이 무시될지는 예측할 수 없음.
2. Key에 리스트는 쓸수없고, 튜플은 사용가능
리스트는 그 값이 변할 수 있기 때문에 Key 로 쓸 수 없고
튜플은 변하지 않기때문에 쓸 수 있음.
딕셔너리 관련 함수들
Key 리스트 만들기(keys)
>>>a = {'name' : 'Gibeom', 'phone' : '01027342741', 'birth' : '0312'}
>>>a.keys()
dict_keys(['name', 'phone', 'birth'])
a.keys()는 딕셔너리 a의 Key 만을 모아서 dict_key라는 객체를 리턴.
dict_keys 객체는 리스트를 사용하는 것과 차이가 없지만
다음과 같이 사용할 수 있음.(고유함수는 수행불가)
>>>for profile in a.keys():
. . . print(profile)
. . .
phone
birth
name
dict_keys 객체를 리스트로 변환하려면
>>>list(a.keys())
['phone', 'birth', 'name']
Value 리스트 만들기(values)
>>>a.values()
dict_values(['Gibeom', '01027342741', '0312'])
values 함수를 호출하면 dict_values 객체가 리턴되는데,
dict_keys 객체와 마찬가지로 리스트를 사용하는 것과 동일하게 사용하면 됨.
Key, Value 쌍 얻기(items)
>>>a.items()
dict_items([('name', 'Gibeom'), ('phone', '01027342741'), ('birth', '0312')])
items 함수는 key 와 value 의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려줌.
Key : Value 쌍 모두 지우기(clear)
>>>a.clear()
>>>a
{}
clear() 함수는 딕셔너리 안의 모든 요소를 삭제
Key 로 Value 얻기(get)
>>>a = {'name' : 'Gibeom', 'phone' : '01027342741', 'birth' : '0312'}
>>>a.get('name')
'Gibeom'
>>>a.get('phone')
'01027342741'
get(x) 함수는 x라는 key에 대응되는 value를 돌려주는데
a.get('name')은 앞에서 본 a['name'] 과 동일한 결과값을 돌려받음
둘의차이는 존재하지 않는 키로 값을 가져오려 할 경우
get은 None 을 리턴하고 후자는 Key 오류를 발생시킴.
딕셔너리 안에 찾으려는 key 값이 없을 경우 미리 정해 둔 디폴트 값을
대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 편리함.
>>>a.get('foo', 'bar')
'bar'
a 딕셔너리에는 'foo'에 해당하는 키가 없어서 디폴트 값인 'bar'를 리턴
해당 Key가 딕셔너리 안에 있는지 조사하기(in)
>>>a = {'name' : 'Gibeom', 'phone' : '01027342741', 'birth' : '0312'}
>>>'name' in a
True
>>>'email' in a
False
'파이썬 복습' 카테고리의 다른 글
3/21 자료형의 참과 거짓 (0) | 2018.03.21 |
---|---|
3/20 집합 자료형 (0) | 2018.03.20 |
3/18 튜플 자료형 (0) | 2018.03.18 |
3/16 리스트 자료형 (0) | 2018.03.16 |
3/15 고급 문자열 포매팅 (0) | 2018.03.15 |