본문 바로가기
Python

파이썬 딕셔너리

by 승환파크 2023. 5. 8.

자료의 대응 관계를 나타내는 자료형이다.

연관 배열(Associative Array) 또는 해시(Hash)라고도 부른다.

데이터를 조회할 때 key를 통해 value를 구한다.

딕셔너리의 선언 방법

딕셔너리는 중괄호{} 로 선언한다.

키 : 값 의 형태로 이루어져 있으며 콤마(,)로 연결하여 많은 값들을 작성한다.

키는 문자열, 숫자, 불 등으로 선언할 수 있지만 일반적으로는 문자열을 주로 사용한다.

# 딕셔너리 선언
dic = {"name" : "andy", "birth" : "1118"}

# value 값에는 어떠한 값이나 다 들어갈 수 있다.
dic = {"a" : [1, 2, 3]}
print(dic)
# 결과값
# {'a': [1, 2, 3]}

 

딕셔너리 추가, 삭제

dic = {"a" : [1, 2, 3]}
# 키를 기반으로 값을 입력
dic["name"] = "andy"
print(dic)
# 결과값
# {'a': [1, 2, 3], 'name': 'andy'}

# 이미 존재하는 키를 지정하고 값을 넣으면 기존의 값을 새로운 값으로 대체한다.
# 딕셔너리는 키의 중복을 허용하지 않는다.
dic["name"] = "apple"
print(dic)
# 결과값
# {'a': [1, 2, 3], 'name': 'apple'}

# 딕셔너리 삭제
# 딕셔너리는 index가 존재하지 않기때문에 key 값으로 제거를 해아한다.
del dic["name"]
print(dic)
# 결과값
# {'a': [1, 2, 3]}

 

딕셔너리 데이터 추출

score = {"kim" : 10, "lee" : 99}
print(score["kim"])
print(score["lee"])
# 결과값
# 10
# 99

딕셔너리의 key는 고유한 값이다.

따라서 중복을 허용하지 않는다.

왜냐하면 동일한 key가 존재한다면 어떤 value를 불러와야할지 알 수 없기 때문이다.

dic = {1 : "a", 1 : "b"}
print(dic)
# 결과값
# {1 : 'b'}

 

딕셔너리의 key에 튜플 사용하기

딕셔너리의 key에 튜플은 사용할 수 있다. 하지만 리스트는 사용이 불가능하다.

왜냐하면 딕셔너리의 key의 요건은 변하지 않는 값이어야 하기 때문이다.

# 딕셔너리 key 값에 리스트 넣기
dic = {[1, 2] : "hi"}
# 결과값
# TypeError: unhashable type: 'list'

# 딕셔너리 key 값에 튜플 넣기
dic = {(1, 2) : "hi"}
print([{1, 2}])
# 결과값
# hi

 

딕셔너리 관련 함수

1. key()

딕셔너리의 key 값들을 알아오기 위해서 사용하는 메서드이다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}
dic.keys()
# 결과값
# dict_keys(['name', 'phone', 'birth'])

 

2. value()

딕셔너리의 value 값들을 알아오기 위해서 사용하는 메서드이다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}
dic.values()
# 결과값
# dict_values(['andy', '01011112222', '1118'])

 

3. item()

딕셔너리의 key, value 값들을 모두 확인하기 위해서 사용하는 메서드이다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}
dic.items()
# 결과값
# dict_items([('name', 'andy'), ('phone', '01011112222'), ('birth', '1118')])

 

4. get()

사용자가 원하는 key 로 value 를 찾기 위해서 사용하는 메서드이다.

존재하지 않는 key 로 value 를 가져오려고 하는 경우 오류가 발생한다.

하지만 get 함수로 key 가 없는 value 를 가져오려고 하는 경우 기본값을 대신 가져오게 할 수 있다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}

# 존재하지 않는 키로 값 가져오기
dic["foo"]
# 결과값
# KeyError: 'foo'

# 딕셔너리에 값이 없다면 "bar" 라는 문자열을 반환한다.
dic.get("foo", "bar")
# 결과값
# 'bar'

# 딕셔너리에 값이 있다면 "bar" 라는 값을 반환하지 않고 "name"에 맞는 value값을 반환한다.
dic.get("name", "bar")
# 결과값
# 'andy'

 

5. in

해당 key가 딕셔너리 안에 있는지 확인하기 위해서 사용하는 메서드이다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}

"name" in dic
# 결과값
# True

"email" in dic
# 결과값
# False

 

6. clear()

딕셔너리에 들어있는 모든 값들을 삭제하기 위해서 사용하는 메서드이다.

dic = {"name" : "andy", "phone" : "01011112222", "birth" : "1118"}

dic.clear()
print(dic)
# 결과값
# {}

 

'Python' 카테고리의 다른 글

파이썬 조건문  (0) 2023.05.08
파이썬 세트  (0) 2023.05.08
파이썬 튜플  (0) 2023.05.08
파이썬 리스트  (0) 2023.05.08
파이썬 컬렉션  (0) 2023.05.08