#딕셔너리 #Dictionary #Dic #사전 #key #value #대응관계 #연관배열 #해시 #hash
파이썬 자료형의 종류
1. 숫자형
2. 문자열 자료형
3. 리스트 자료형
4. 튜플 자료형
5. 딕셔너리 자료형 ◀(이번 장에서 배울 내용)
6. 집합 자료형
7. 불 자료형
딕셔너리(Dictionary) 자료형은 일상에서
단어를 찾을 때 쓰는 사전처럼
단어와 그 뜻을 연결해 주는 자료형태입니다.
아래 표를 반복해서 보면서 자료형에 익숙해 지세요~
■ 사전(딕셔너리 Dictionary)
□ 이름(key)과 내용(value)를 연결
(순서가 없음, 수정할 수 있음)
사전의 이름 = {key1:Value1, key2:Value2, ...}
딕셔너리 자료형은 리스트와 튜플과 다르게
인덱싱과 슬라이싱을 사용할수가 없습니다.
이유는 딕셔너리는 순서를 가지고 있지 않기 때문입니다.
그래서 특정 위치의 Value 값을 호출할 때
인덱싱과 슬라이싱 대신
변수[Key값] 라고 입력합니다.
※Key값이 숫자라면 인덱싱과 혼동될 수 있으니 유의하세요.
ex) 변수[1] → '1'이라는 키값의 Value 반환
변수[Key] = Value
딕셔너리 자료형에서 Value 값 확인하기
※파이썬에서 순서는 어떤 의미이고 어떻게 세는지
모르신다면 아래 게시글을 참고해주세요.
아래 표에 적힌 Key와 Value 값을 사용하여
딕셔너리 자료형의 기본 구조를 알아 보겠습니다.
Key | Value |
이름 | 김사전 |
생일 | 0815 |
dic1 = {'이름':'김사전','생일':'0815'}
print(dic1) #dic1이란 변수에 포함된 모든 항목을 호출
print(dic1['이름']) #dic1에서 '이름'이란 Key 값의 Value를 호출
print(dic1['생일']) #dic1에서 '생일'이란 Key 값의 Value를 호출
val1 = '이름' #Key값을 변수로 지정하면 지정된 변수의 Value를 호출
print(dic1[val1]) #print(dic1['이름']) 과 같은 의미
##### result #####
{'이름': '김사전', '생일': '0815'}
김사전
0815
김사전
딕셔너리 자료형의 다른 사용법도 보겠습니다.
dic1 = {'이름':'김사전','생일':'0815'}
dic1['성별'] = '여자' #현재 딕셔너리에 없는 Key값을 입력하면 항목이 추가됩니다.
print(dic1)
print(dic1['성별'])
dic1['이름']='김딕션' #기존 Key에 다른 값을 입력하면 Value값이 변경됩니다.
print(dic1)
del dic1['생일'] #딕셔너리에서 '생일' 항목이 삭제됩니다.
print(dic1)
##### result #####
{'이름': '김사전', '생일': '0815', '성별': '여자'} #성별이 추가됨
여자
{'이름': '김딕션', '생일': '0815', '성별': '여자'} #이름이 변경됨
김딕션
{'이름': '김딕션', '성별': '여자'} #생일이 삭제됨
dic2 ={'이름':'이사전','번호':[1,2,3], 111:777}
#리스트 자료형을 Value로 넣을 수 있습니다. 단, 리스트를 Key로는 사용 못함.
print(dic2['번호'])
print(dic2[111])
##### result #####
[1, 2, 3]
777
dic3 = {'알파벳':'a', '알파벳':'Z'}
#Key의 값이 같을 경우 마지막에 입력된 Key의 Value만 저장됩니다.
print(dic3) #처음 입력된 {'알파벳':'a'} 는 무시된다
print(dic3['알파벳'])
##### result #####
{'알파벳': 'Z'}
Z
■ 딕셔너리 관련 함수
□ 딕셔너리이름 . 함수명령어()
딕셔너리 함수는 리스트,튜플 함수와는 다릅니다.
구분해서 암기하면 편할 것 같네요~
1) Key 모음 가져오기 (keys)
딕셔너리.keys( )
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1.keys()) #딕셔너리에 있는 Key 값만 불러오기
#아래 결과값을 보면 'dict_keys'문구와 Key값이 같이 출력이 되는데
리스트형태로 변형하면 Key값들이 리스트 형태로 출력됩니다.
a=dic1.keys()
print(list(a))
##### result #####
dict_keys(['이름', '생일', 'address'])
['이름', '생일', 'address']
2) Value 모음 가져오기 (values)
딕셔너리.values( )
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1.values()) #딕셔너리에 있는 Value 값만 불러오기
print(list(dic1.values())) #리스트 형태로 호출
##### result #####
dict_values(['김사전', '0815', 'Seoul'])
['김사전', '0815', 'Seoul']
3) Key, Value 쌍 모음 가져오기 (items)
딕셔너리.items( )
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1.items()) #key와 Value 값 모두 불러오기
print(list(dic1.items())) #리스트 형태로 호출
print(dic1) #전체를 호출하는 것과 items()으로 호출하는 것은 자료형태만 다름
##### result #####
dict_items([('이름', '김사전'), ('생일', '0815'), ('address','Seoul')])
↑ items() 함수를 사용하면 각 항목을 튜플 형태를 가진 리스트로 가져옵니다.
[('이름', '김사전'), ('생일', '0815'), ('address','Seoul')]
{'이름': '김사전', '생일': '0815', 'address':'Seoul'}
4) Key:Value 쌍 모두 지우기 (clear)
딕셔너리.clear( )
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
dic1.clear() #딕셔너리 안의 모든 요소가 삭제
print(dic1)
##### result #####
{} #빈 딕셔너리만 출력됩니다.
5) Key로 Value 얻기 (get)
딕셔너리.get(Key값)
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1['이름']) #Key값으로 호출
print(dic1.get('이름')) #get 함수로 호출
#두 가지 방법 모두 동일한 결과가 출력됩니다.
#그런데 get() 함수를 사용하는 이유는
#값이 없을 때 None 값으로 확인하기 위해서입니다.
print(dic1.get('전화'))
#Key의 값을 불러오는데 해당하는 Key가 없는 경우 'None'이라고 호출
##### result #####
김사전
김사전
None
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1['전화']) #존재하지 않는 Key값을 호출하면 오류 메시지가 뜹니다.
##### result #####
Traceback (most recent call last):
File "main.py", line 64, in <module>
print(dic1['전화'])
KeyError: '전화'
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print(dic1.get('전화'))
print(dic1.get('전화','Key 없음'))
#key가 없다고 생각될 때 None이 아닌 특정 값으로 호출하고 싶다면
#get('key값','디폴트값') 으로 입력
##### result #####
None
Key 없음
6) 해당 Key가 딕셔너리 안에 있는지 조사하기 (in)
Key값 in 딕셔너리
dic1 = {'이름':'김사전','생일':'0815','address':'Seoul'}
print('전화' in dic1) # dic1안에 '전화' Key가 있으면True, 없으면False가 출력
print('이름' in dic1)
##### result #####
False
True
'Python 기초 배우기 > 비전공자도 배우는 파이썬 기초' 카테고리의 다른 글
11. 파이썬 불(Bool) 자료형, 논리형 (True/False) (0) | 2021.03.02 |
---|---|
10. 파이썬 집합(set) 자료형 (0) | 2021.02.13 |
08. 파이썬 튜플(Tuple) 자료형 (2) | 2021.01.26 |
07. 파이썬 리스트(List) 자료형 (0) | 2021.01.12 |
06. 파이썬 문자열 자료형 관련 함수 (0) | 2021.01.06 |