블로그 이미지
김고노

calendar

1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

Notice

2018. 3. 19. 14:51 파이썬 복습

딕셔너리 자료형이란?




말그대로 '사전'이다.




대응 관계를 나타내는 자료형인 딕셔너리는


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
posted by 김고노