본문 바로가기

처음부터 파이썬

점프 투 파이썬으로 파이썬 배우기! - 파이썬 프로그래밍의 기초, 자료형 <딕셔너리>

반응형

딕셔너리 (dictionary) : 대응 관계  를 나타내는 자료형으로 Key와 Value를 한 쌍으로 갖는 자료형

Key : 변하지 않는 값, Value : 변하는 값 & 변하지 않는 값 → {Key1:Value1, Key2:Value2, Key3:Value3, ...}

리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.

dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}                                                                                                                a = {1: 'hi'}                                                                                                                                                                                          a = { 'a': [1,2,3]}

4-1. 딕셔너리 추가, 삭제

1. 딕셔너리 쌍 추가하기

a = {1: 'a'}                                                                                                                                                                                            a[2] = 'b'                                                                                                                                                                                            a                                                                                                                                                                                                        → {1: 'a', 2: 'b'}

a['name'] = 'pey'                                                                                                                                                                                 a                                                                                                                                                                                                         → {1: 'a', 2: 'b', 'name': 'pey'}} # key, value에 문자열 추가

a[3] = [1,2,3]                                                                                                                                                                                       a                                                                                                                                                                                                         → {1: 'a', 2: 'b', 'name': 'pey'}, 3: [1, 2, 3]} # value에 리스트 추가

2. 딕셔너리 요소 제거하기

del a[1]                                                                                                                                                                                               a                                                                                                                                                                                                       → {2: 'b', 'name': 'pey', 3: [1, 2, 3]}

4-2. 딕셔너리 사용 방법

1. 딕셔너리 사용법

dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}                                                                                                         

dic['name']                                                                                                                                                                                        → 'pey'                                                                                                                                                                                    

dic['phone']                                                                                                                                                                                        → '0119993323'                                                                                                                                                                      

dic['birth']                                                                                                                                                                                            → '1118'

2. 딕셔너리 주의사항

1. Key가 중복되면 1개를 제외한 나머지 Key : Value 값이 무시된다.

a = {1:'a', 1:'b'}                                                                                                                                                                                  a                                                                                                                                                                                                         → {1: 'b'}

2. Key에 리스트는 쓸 수 없다.

a = {[1,2] : 'hi'}                                                                                                                                                                                    → Traceback (most recent call last):                                                                                                                                                  File "<stdin>", line 1, in <module>                                                                                                                                                    TypeError: unhashable type: 'list'

4-3. 딕셔너리 함수

1. Key list 만들기

a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}                                                                                                                a.keys()                                                                                                                                                                                              dict_keys(['name', 'phone', 'birth']) # 리스트가 아닌 dict_keys 객체이다. 함수 사용 불가

list(a.keys())                                                                                                                                                                                         → ['name', 'phone', 'birth']  # dict_keys 객체를 리스트로 변환

2. Value list 만들기

a.values()                                                                                                                                                                                            dict_values(['pey', '0119993323', '1118'])

3. Key, Value 쌍 얻기 (item)

a.items()                                                                                                                                                                                               → dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])

4. Key, Value 쌍 모두 지우기 (clear)

a.clear()                                                                                                                                                                                              a                                                                                                                                                                                                          → { }

5. Key로 Value 얻기 (get)

a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}                                                                                                                    a.get('name')                                                                                                                                                                                   → 'pey'

print(a.get('nokey'))                                                                                                                                                                             → None # Key값이 거짓(없음)을 나타낸다.

a.get('foo', 'bar') # get(x, 디폴트 값)                                                                                                                                                     → 'bar' # 디폴트 값을 설정하여 Key가 없어도 불러온다.

print(a['nokey'])                                                                                                                                                                                  Traceback (most recent call last):                                                                                                                                                   File "<stdin>", line 1, in <module>                                                                                                                                                     KeyError: 'nokey' # 오류가 발생한다.

6. Key가 딕셔너리 안에 있는지 조사하기 (in)

'name' in a                                                                                                                                                                                         → True                                                                                                                            

'email' in a                                                                                                                                                                                         → False

반응형