나 개발자 진짜 되냐?

2일차 파이썬 프로그래밍 기초_딕셔너리편 본문

파이썬을 시작했어요!

2일차 파이썬 프로그래밍 기초_딕셔너리편

Snow Rabbit 2022. 12. 13. 21:40
반응형

자료형이 참 많네요...

딕셔너리 시간입니다!

 

딕셔너리는 keyvalue가 한쌍으로 갖는 자료형이라고 한다.

 

딕셔너리는 앞에 공부했던 리스트나 튜플처럼 순차적으로 요소값을 요구하지 않고

key와 value로 얻는다고 한다. 좀 더 똑똑한 친구인갑다.

 

딕셔너리는 중괄호 안에 여러 개 있고 쉼표로 구분되어있다.

key와 value는 key:value로 나타낸다.

 

dic = {'name':'cha', 'phone':'010-2222-8888', 'birth': '0208'}

 

key값에는 정수도 들어올 수 있고

value 또한 리스트도 들어갈 수 있다. 

 

그렇다면 이 딕셔너리를 사용하는 이유와 언제 사용해야 할까?!

읽어보자. 하나의 키와 특징을 나열할 때 정말 좋을 것 같았다.

 

딕셔너리 추가

딕셔너리 추가는 어떻게 하는 걸까?

 

a = { 1:'c' }

a[2] = 'h'

a      →      { 1:'c',  2:'h' }   

 

a['name'] = 'cha'

a      →      { 1:'c',  2:'h', name:'cha' }

 

a[3] = [ 1, 2, 3 ]

a      →      { 1:'c',  2:'a', name:'cha', 3:[ 1, 2, 3 ] }

 

key는 대괄호에 넣고 = 뒤에 value값을 써준다.

 

딕셔너리 삭제

삭제할 땐??? del을 써준다key만 지워도 함께 쌍으로 value까지 삭제된다.

 

del a[1]

a      →      { 2:'a', name:'cha', 3:[ 1, 2, 3 ] }

 

 

간편하게 정리할 수 있다.

 

딕셔너리에서 key를 사용해서 value 값 얻기

 

key만 적어줘도 value 값을 얻을 수 있다.

 

dic = { 'cha' : 22. 'min' : 88 }

dic['cha']      →      22

dic['min']      →      88

 

 

※ 주의할 점

    key가 동일하면 어떤 value를 불러야 할지 모르기 때문에 주의해야 한다.

    또한 key값에는 리스트 값을 넣을 수가 없다.   

 

딕셔너리 관련 함수

 

dic = {'name':'cha', 'phone':'010-2222-8888', 'birth': '0208'}

 

key 리스트 만들기 ===> dic.keys

 

dic.keys()      →      dict_keys(['name', 'phone', 'birth'])

 

key들만 딱 프린트하고 싶다면?! 

 

list(a.keys())      →      ['name', 'phone', 'birth']

 

 

value 리스트 만들기 ===> dic.value

 

dic.values()      →      dict_values(['cha', '010-2222-8888', '0208'])

 

 

key, value 둘 다 얻기 ===> items

 

dic.items()      →      dic.items([('name','cha'),('phone','010-2222-8888),('birth','0208')])

 

key로 value 구하기 ===> get

 

dic.get('name')      →      'cha'

     우리 아까 key값으로 value를 구하던 dic ['name']과의 차이점은

 

     없는 키를 찾을 때!!print로 출력해보면

 

     함수형인 get을 쓰면 거짓의 뜻인 none가 나오고

     dic[]형태로 쓰게 되면 오류가 발생한다.

 

키가 없을 땐! 디폴트 값으로 정해주는 방법도 밑에 있다.

확인해보소..

 

key가 딕셔너리에 있는지 어떻게 알 수 있을까?!

 

그땐 in을 사용한다.

'키' in 변수

 

'name' in dic      →      true

'email' in dic      →      false

 

...오래 걸렸군..끗..ㅎㅅㅎ

 

반응형