[Python] 딕셔너리(dictionary)

토끼는 개발개발·2021년 10월 29일
0

Python

목록 보기
5/11
post-thumbnail
post-custom-banner

✏️ 딕셔너리(Dictionary)란?

👉🏻 딕셔너리란, 단어 그대로 사전이라는 뜻으로 키(Key)와 값(Value) 한 쌍이 하나의 대응 관계를 가지고 있는 자료형 이다.
예를 들어, "이름"="홍길동"은 "이름"이라는 Key가 열쇠고 "이름"의 Value로 "홍길동"이 쌍을 이루는 자료형이다.

딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요소값을 구하지 않고 Key를 통해 Value를 얻는다. 이것이 딕셔너리의 가장 큰 특징이다. "이름"이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아니라 "이름"이라는 단어가 있는 곳만 펼쳐 보는 것이다.


✏️ 딕셔너리 만들기

딕셔너리 생성, 변경, 삭제 방법을 예제로 알아보자.

# 딕셔너리 생성 => 딕셔너리 = {키:값}
dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}

# 값 추가 => 딕셔너리[키] = 값
dic['email'] ='aaa@bbb'

# 값 삭제 => del 딕셔너리[키]
del dic['email']

# 값 접근 => 딕셔너리[키]
print(dic['name'])

📌 딕셔너리 주의사항

1) 키 값은 중복 될 수 없다.
키 값은 고유해야하므로 동일한 키를 추가하면 나중에 추가된 키와 값에 기존의 키와 값이 덮어 씌워진다.

a = {1:'a', 1:'b'}
print(a)

# 결과
{1: 'b'}

2) 키 값에 list, set이 올 수 없다.
키 값엔 immutable(불변한) 객체 타입이 와야 하므로 mutable한 객체 타입인 list나 set 타입은 딕셔너리의 키가 될 수 없다.

a = {[1,2]:'hi}

TypeError: unhashable type: 'list'

✏️ 딕셔너리 관련 함수

1) Key 리스트 만들기: .keys

딕셔너리.keys() 함수를 통해서 딕셔너리의 키(key)들을 한번에 볼 수 있다.

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
print(dic.keys())


#for i in dic.keys():
#	print(i)
    
# 결과
name 
phone
birth

dic.keys()는 딕셔너리 dic의 key만을 모아서 dict_keys 객체를 돌려준다.

[파이썬 2.7 버전까지는 dic.keys() 함수를 호출할 때 반환 값으로 dict_keys가 아닌 리스트를 돌려줬지만, 3.0 이후는 리스트가 아닌 dics_keys 객체를 돌려준다.]


2) Values 리스트 만들기: .values

딕셔너리.values() 함수를 통해서 딕셔너리의 값(values)들을 한번에 볼 수 있다.

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
print(dic.values())

#for i in dic.values():
#	print(i)
    
#결과
tom
123456789
0000

3) Key, Value 쌍 얻기: .items

딕셔너리.items() 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
print(dic.items())

#결과
dict_items([('name', 'tom'), ('phone', '123456789'), ('birth', '0000')])

4) Key, Value 쌍 모두 지우기: .clear

딕셔너리.clear함수는 딕셔너리 안의 모든 요소를 삭제한다. 빈 딕셔너리는 {}로 표현한다.

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
dic.clear()
print(dic)

#결과
{}

5) Key로 Value얻기: .get()

get(x) 함수는 x라는 Key에 대응 되는 Value를 돌려준다.
존재하지 않는 키 y로 값을 가져오려고 할 경우 dic['y']는 오류를 발생시키고, dic.get('y')는 None을 돌려준다.

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
print(dic.get('name))

#결과
tom

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

예제

dic = {'name':'tom', 'phone':'123456789', 'birth':'0000'}
print('name' in dic)

#결과
True

'name'이 dic 딕셔너리 안에 존재하는 Key라면 True를 반환하고, 존재하지 않는다면 False를 반환한다.

profile
하이 이것은 나의 깨지고 부서지는 기록들입니다
post-custom-banner

0개의 댓글