딕셔너리
- "이름" = "홍길동", "생일" = "월~일" 등으로 구별할 수 있는 대응 관계를 나타내는 자료형
- 연관 배열(Associative array), 해시(Hash)
- 딕셔너리는 key와 Value를 한 쌍으로 갖는 자료형
- 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 key를 통해 Value를 얻음
딕셔너리 구조
딕셔너리명 = {key1:value1, key2:value2, key3:value3, ... }
- key와 value 쌍 여러 개가 { }로 둘러싸여 있음
- 요소는 key:value 형태로 이루어져 있고 콤마(,)로 구분
- key는 변하지 않는 값을 사용, value는 변하는 값과 변하지 않는 값 모두 사용
>>> a = {1:'hi'}
>>> a = {'a':[1, 2, 3]} # value에 리스트도 넣을 수 있음
딕셔너리 쌍 추가하기
딕셔너리명[key] = value
>>> a = {1:'a'}
>>> a[2] = 'b'
>>> a
{1:'a', 2:'b'}
>>> a['name'] = 'pey'
>>> a
{1:'a', 2:'b', 'name':'pey'}
딕셔너리 요소 삭제하기
del 딕셔너리명[key]
del() 함수를 사용해서 del a[key]처럼 입력하면 지정한 key에 해당하는 {key : value} 쌍이 삭제
>>> a = {1:'a', 2:'b', 'name':'pay'}
>>> del a[1]
>>> a
{2:'b', 'name':'pay'}
딕셔너리를 사용하는 방법
- 딕셔너리에서 key 사용해 value 얻기 딕셔너리명[key]
>>> grade = {'pey' : 10, 'julliet' : 99}
>>> grade['pey']
10
>>> grade['julliet']
99
>>> a = {1:'a', 2:'b'}
>>> a[1] # [ ] 안의 '1'은 인덱스가 아니라 key 값을 의미
'a'
>>> a[2]
'b'
딕셔너리 만들 때 주의할 사항
- 딕셔너리에서 key는 고유한 값이므로 중복되는 key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시
>>> a = {1:'a', 1:'b'}
>>> a
{1:'b'}
- key에 리스트를 쓸 수 없다
key 값은 key가 변하는 값인지 변하지 않는 값인지 판단
리스트는 그 값이 변할 수 있기 때문에 key로 쓸 수 없음
>>> a = {[1, 2] : 'hi'}
TypeError
딕셔너리 함수
사용형식: 딕셔너리명.함수()
keys() - key 리스트 만들기
- 딕셔너리의 key만 모아서 dict_keys 객체로 반환
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
>>> for k in a.keys():
... print(k)
...
name
phone
birth
- 리스트의 append, insert, pop, remove, sort 함수는 수행할 수 없다
- dict_keys 객체를 리스트로 변환하려면
>>> list(a.keys())
['name', 'phone', 'birth']
values() - value 리스트 만들기
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.values()
dict_values(['pey', '0119993323', '1118'])
items() - key, value 쌍 얻기
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.items()
dict_itmes([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
get() - key로 value 얻기
- get(x) 함수는 x라는 key에 대응되는 value를 반환
- a.get('name')은 a['name']을 사용했을 때와 동일한 결괏값을 반환
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'0119993323'
- 존재하지 않는 key로 value를 얻고자 할 때
딕셔너리명[key]는 에러 발생, 딕셔너리명.get[key]는 None을 반환
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey'])
KeyError
- 딕셔너리 안에 찾으려는 key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.get('foo', 'bar')
'bar'
in - 해당 key가 딕셔너리 안에 있는지 조사하기
- key가 딕셔너리에 존재하면 True, 존재하지 않으면 False을 반환
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> 'name' in a
True
>>> 'email' in a
False
clear() - key:value 쌍 모두 지우기
>>> a = {'name':'pey', 'phone':'0119993323', 'birth':'1118'}
>>> a.clear()
>>> a
{ }
'Language > Python' 카테고리의 다른 글
[Python] Idle에서 패키지 설치하기 (0) | 2023.01.08 |
---|---|
[Python] 집합 (0) | 2022.02.23 |
[Python] 튜플 (인덱싱과 슬라이싱, 연산하기) (0) | 2022.01.22 |
[Python] 리스트 함수 (0) | 2021.11.17 |
[Python] 리스트 (인덱싱과 슬라이싱, 연산하기, 수정과 삭제) (0) | 2021.11.17 |