본문 바로가기

Programming/Phython

[파이썬] 6. 딕셔너리

반응형

딕셔너리

 

대응 관계를 나타낼 수 있는 자료형

무엇이든 구별할 수 있는 자료형

 

순차적으로 해당 요솟값을 구하는 게 아니라 Key를 통해 Value를 얻는다.

{Key1:Value1, Key2:Value2, Key3:Value3, ...}

Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값과 변하지 않는 값 모두 사용한다.

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

>>> a = {1: 'hi'}

>>> a = { 'a': [1,2,3]}

 

딕셔너리 쌍 추가와 삭제

>>> a = {1: 'a'}

>>> a[2] = 'b'

>>> a
{1: 'a', 2: 'b'}

>>> a['name'] = 'pey'

>>> a
{1: 'a', 2: 'b', 'name': 'pey'}

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

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

>>> del a[1]

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

딕셔너리를 사용하는 방법

{"김연아":"피겨스케이팅", "류현진":"야구", "박지성":"축구", "귀도":"파이썬"}

각자의 특기를 표현할 수 있는 방법 -> 사람 이름과 특기를 한 쌍으로 하는 딕셔너리

 

 

딕셔너리에서 Key를 사용해 Value 얻기

>>> grade = {'pey': 10, 'julliet': 99}

>>> grade['pey']
10

>>> grade['julliet']
99

>>> a = {1:'a', 2:'b'}

>>> a[1]
'a'

>>> a[2]
'b'

>>> a = {'a':1, 'b':2}

>>> a['a']
1

>>> a['b']
2

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

>>> dic['name']
'pey'

>>> dic['phone']
'0119993323'

>>> dic['birth']
'1118'

 

요솟값을 얻기 위한 방법으로 리스트나 튜플의 a[1]과 다르다.

(리스트나 튜플은 인덱싱이나 슬라이싱으로 값을 얻지만, 딕셔너리는 Key를 이용해 Value를 얻기 때문이다.)

 

딕셔너리 만들 때 주의할 사항

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

>>> a
{1: 'b'}

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

 

딕셔너리에서의 Key는 고유한 값으로 중복되는 Key 값은 하나를 제외하고 모두 무시된다.

Key에 리스트는 쓸 수 없지만, 튜플은 쓸 수 있다.

(키 값은 변할 수 없는 값으로 사용해야하기 때문에 값을 변경할 수 없는 튜플은 사용가능하다.)

 

단 Value에는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있다.

 


딕셔너리 함수

 

1. Key / Value 리스트 만들기 (keys, values)

>>> a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
>>> for k in a.keys():
...    print(k)
...
name
phone
birth

리스트와 기능은 같지만 리스트의 함수는 사용할 수 없다.

print(k)는 들여쓰기를 하지 않으면 오류가 발생한다.

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

dict_keys 객체를 리스트로 변환

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

values 함수를 호출하면 dict_values 객체를 돌려준다.

 

2. Key, Value 쌍 얻거나, 지우기

>>> a.items()

dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])


>>> a.clear()

>>> a
{}

빈 리스트를 [ ]

빈 튜플을 ( )

 

마찬가지로 빈 딕셔너리도 { }로 표현한다.

 

3. Key로 Value 얻기 (get)

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

>>> a.get('name')
'pey'

>>> a.get('phone')
'0119993323'

>>> print(a.get('nokey'))
None

>>> print(a['nokey'])

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'nokey'

 a['nokey']는 Key 오류를 발생 / a.get('nokey')는 None을 돌려준다

>>> a.get('foo', 'bar')
'bar'

Key 값이 없을 경우 미리 정해 둔 디폴트 값을 가져오게 하는 방법

 

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

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

>>> 'name' in a
True

>>> 'email' in a
False

 

반응형

'Programming > Phython' 카테고리의 다른 글

[파이썬] 8. 불  (0) 2021.02.12
[파이썬] 7. 집합  (0) 2021.02.11
[파이썬] 5. 튜플  (0) 2021.02.11
[파이썬] 4. 리스트  (0) 2021.02.11
[파이썬] 3. 문자열  (0) 2021.02.11