딕셔너리는 사전이라는 뜻이죠. 영한 사전을 생각해보겠습니다. 사전에서 Apple
을 찾으면, 사과
가 나올 것입니다. 여기서 Apple
은 Key
이며, 사과
는 Value
에 해당합니다. 열쇠로 무언가를 열고 들어가면, 값을 얻게 되는 것이죠. 이처럼 키와 값으로 구성된 자료형을 파이썬에서는 딕셔너리라 합니다.
딕셔너리, 리스트, 튜플의 차이
앞서 리스트와 튜플에 대해 살펴봤는데요. 딕셔너리는 이 둘과 달리 순서에 따라 값에 접근하는 것이 아닌, Key
를 사용합니다. 또한, 리스트는 대괄호 []
, 튜플은 괄호 ()
를 사용하는 반면, 딕셔너리는 중괄호 {}
를 사용합니다.
딕셔너리 예시
아래는 딕셔너리의 한 예시입니다.
aboutMe = {
'name': 'Hwi',
'age' : 32,
'job' : 'translator'
}
위와 같이 딕셔너리를 선언한 경우, 'name'
,'age'
,'job'
이 키에 해당하며, 'Hwi'
,32
,'translator'
가 값에 해당합니다. 값에는 다음과 같이 접근할 수 있습니다.
aboutMe['name']
# 'Hwi'
aboutMe['age']
# 32
aboutMe['job']
# 'translator'
이처럼 딕셔너리에서는 키와 값이 할당된 변수 뒤에 ['Keys']
와 같은 형식으로 Values
에 접근할 수 있습니다.
딕셔너리와 Key
딕셔너리에서는 Key
가 무척 중요한 역할을 합니다. Key
가 없이는 값을 할당할 수 없고, 또 이에 접근할 수도 없기 때문인데요.
Key
는 중복되어서는 안 됩니다. 중복될 경우, 다른 하나가 임의로 무시됩니다.Key
에 리스트나 딕셔너리를 사용할 수 없습니다. 그러나 숫자, 문자, 튜플은 사용할 수 있습니다. 이는 리스트나 딕셔너리가 재할당으로 변경될 수 있기 때문입니다.
딕셔너리 요소 추가 및 삭제
이제 딕셔너리에 몇 가지 사항을 추가하고 삭제해보겠습니다. 먼저, 추가입니다.
aboutMe = {
'name': 'Hwi',
'age' : 32,
'job' : 'translator'
}
aboutMe['job2'] = 'blogger'
aboutMe
# aboutMe = {'name': 'Hwi', 'age' : 32, 'job' : 'translator', 'job2' : 'blogger'}
이제 del
함수를 사용하여 job
을 삭제해보도록 하겠습니다.
aboutMe = {
'name': 'Hwi',
'age' : 32,
'job' : 'translator',
'job2' : 'blogger'
}
del aboutMe['job']
aboutMe
# aboutMe = {'name': 'Hwi', 'age' : 32, 'job2' : 'blogger'}
딕셔너리 기본 함수
마지막으로 딕셔너리에서 사용할 수 있는 기본적인 함수들에 대해 알아보도록 하겠습니다.
Keys 리스트 출력
keys()
를 사용하여 딕셔너리의 키 값을 담은 객체를 얻을 수 있습니다.
aboutMe = {
'name': 'Hwi',
'age' : 32,
'job' : 'translator'
}
aboutMe.keys()
# dict_keys['name', 'age', 'job']
앞에 list
함수를 사용하면 리스트로 받을 수 있습니다.
list(aboutMe.keys())
# ['name', 'age', 'job']
Keys 나열
간단히 Keys
를 나열하여 확인하고자 한다면 for ... in
구문을 활용할 수 있습니다.
for keys in aboutMe.keys():
list(keys)
# name
# age
# job
Value 리스트 출력
값들을 리스트로 만들려면 values()
함수를 사용할 수 있습니다.
aboutMe.values()
# dict_values(['Hwi', 32, 'translator'])
앞에 list()
함수를 사용하면 이를 리스트로 받을 수 있습니다.
list(aboutMe.values())
# ['Hwi', 32, 'translator']
Key가 딕셔너리 안에 있는지 확인
특정 Key
가 딕셔너리에 존재하는지를 확인하려면 .. in
구문을 활용하면 됩니다.
'name' in aboutMe
# True
'phone' in aboutMe
# False
Keys, Values 쌍 리스트 출력
.items()
함수를 사용하면 키와 값이 dic_items
객체로 리턴됩니다.
aboutMe.items()
# dict_items([('name', 'Hwi'), ('age', 32), ('job', 'translator')])
Key로 Values 얻기
앞서 aboutMe['name']
과 같은 형식으로 키 값에 접근했는데요. 다음과 같이 get
함수를 사용할 수도 있습니다.
aboutMe.get('name')
# 'Hwi'
aboutMe['name']
# 'Hwi'
aboutMe.get('name') == aboutMe['name']
# True
두 방식의 차이점은 존재하지 않는 키를 호출할 때 입니다.
aboutMe.get('phone')
# None
aboutMe['phone']
# KeyError: 'phone'
get()
함수는 존재하지 않는 키를 호출할 경우 None
이 리턴되며, 대괄호 방식은 에러가 발생합니다.
get()
함수를 사용하면 이러한 경우에 특정 디폴트 값이 리턴되도록 할 수 있습니다.
aboutMe.get('phone', 'This key doesn\'t exist.')
# 'This key doesn't exist.
딕셔너리 Keys, Values 모두 삭제
clear()
를 사용하여 딕셔너리의 모든 요소를 삭제할 수 있습니다.
aboutMe.clear()
aboutMe
# {}
이상으로 딕셔너리의 기본 개념에 대해 살펴봤습니다.
'개발 > Python' 카테고리의 다른 글
파이썬 집합 자료형 설명 (0) | 2021.12.02 |
---|---|
파이썬 튜플 설명 (0) | 2021.12.01 |
파이썬 리스트 설명: 인덱싱, 슬라이싱, 함수 (0) | 2021.11.30 |