just inside

[python] 딕셔너리 자료형 본문

LG U+ Why Not SW camp/python

[python] 딕셔너리 자료형

방울도마도 2024. 7. 10. 10:34
728x90

자주 사용하지만 헷갈리는 딕셔너리 자료형을 짚고 넘어가기 위해 정리해보자.

출처 : https://wikidocs.net/16


딕셔너리

  • 딕셔너리는 {} 사용하여 딕셔너리 내의 요소를 저장
  • 사전과 같이 {키:값}으로 데이터가 저장
  • 키는 임의의 자료형을 사용할 수 있으나 중복 불가
  • 순서 없음

 

기본 구성

dic = {'name':'pey', 'phone':'010-1234-5678', 'birth':'1188'}

 


딕셔너리 쌍 추가, 삭제

추가하기

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

# key = 'name', value = 'pey' 인 딕셔너리 쌍 추가
>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}

 

수정하기

>>> a['name'] = 'anny'
>>> a
{1: 'a', 2: 'b', 'name': 'anny'}

 

삭제하기 : del

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

딕셔너리를 사용하는 방법

Key 사용해 Value 얻기

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

>>> grade['julliet']
99

 

주의할 사항

  • 딕셔너리에서 key는 고유한 값
    • 중복되는 key 값을 사용하면 하나를 제외한 나머지 것들이 모두 무시
  • key에 리스트는 쓸 수 없음
>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}

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

딕셔너리 관련 함수

a.keys() : key 리턴
a.values() : value 리턴
a.items() : key-value 튜플 리턴
a.clear() : 모두 삭제
a.get(key) : key로 value 얻기. 키 없으면 None 리턴
'key' in dict : key가 dict에 있는지 확인

 

Key 리스트 만들기 : keys

  • a.keys() 는 딕셔너리 a의 key 만을 모아 dict_keys 객체 리턴
  • dict_keys 객체는 리스트와 비슷하게 사용할 수 있지만, 리스트 고유의 함수(append, insert, pop, remove, sort) 사용 불가
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

 

Value 리스트 만들기 : values

  • a.values() 는 딕셔너리 a의 value 만을 모아 dict_values 객체 리턴
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])

 

Key, Value 쌍 얻기 : items

  • key와 value의 쌍을 튜플로 묶은 값인 dict_items 객체 리턴
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])

 

Key:Value 쌍 모두 지우기 : clear

  • 딕셔너리 안의 모든 요소 삭제 : a.clear()
>>> a.clear()
>>> a
{}

 

Key로 Value 얻기 : get

  • get(x) 함수는 x라는 key에 대응되는 value 리턴
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
  • 딕셔너리에 존재하지 않는 키로 값을 가져오려 하는 경우
    • a['nokey'] : 오류 발생
    • a.get('nokey') : None 리턴
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey’])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'nokey'
  • key 없는 경우 디폴트 값 지정 가능
>>> a.get('nokey', 'foo')
'foo'

 

해당 Key가 딕셔너리 안에 있는지 조사하기 : in

>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
728x90

'LG U+ Why Not SW camp > python' 카테고리의 다른 글

[python] set (집합) 자료형  (0) 2024.08.01
[python] 문자열 함수 정리  (0) 2024.07.17
[python] 파일 읽고 쓰기  (0) 2024.07.12
[python] 문자열 포매팅  (0) 2024.07.09