[Python] 파이썬에서 딕셔너리(Dictionary) 사용법
- Language/Python
- 2020. 12. 26.
리스트(list)와 튜플(tuple)이 순서가 있는 배열 형태의 자료형이라면 딕셔너리(dictionary)는 키(key)와 값(value)이 쌍으로 있는 자료형입니다. 우리가 사전을 보면 찾는 대상인 주제(ex: 단어)와 내용이 있는 것처럼 딕셔너리는 동일하며 결국 딕셔너리의 목적은 Key로 Value를 찾는 것입니다.
딕셔너리 선언
딕셔너리변수명 = {key1 : value1, key2 : value2 ... keyn : valuen}
>>> kor_eng = {'동쪽':'east','서쪽':'west','학생':'student','소년':'boy','소녀':'girl'}
>>> kor_eng
{'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl'}
딕셔너리의 값은 key와 value를 중괄호에 넣고 있습니다. 이때 key는 문자열과 숫자(정수, 실수)만 가능하고 value는 제한이 없습니다.
딕셔너리 값(Value) 찾기
>>> kor_eng['소년']
'boy'
딕셔너리에서 값을 찾는 방법은 딕셔너리변수[키]를 하면 됩니다
딕셔너리 데이터 추가 방법
>>> kor_eng['파이썬'] = 'python'
>>> kor_eng['파이썬']
'python'
딕셔너리에 값을 추가하는 방법은 딕셔너리변수명[키] = 값과 같은 형태로 입력을 하면 됩니다.
딕셔너리 다른 데이터형
>>> kor_eng['info'] = {'pages':200, 'year':2020}
>>> kor_eng[1] = [1,2,3]
>>> kor_eng
{'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl', '파이썬': 'python', 'info': {'pages': 200, 'year': 2020}, 1: [1, 2, 3]}
>>> kor_eng[1]
[1, 2, 3]
>>> kor_eng['info']
{'pages': 200, 'year': 2020}
딕셔너리는 이와같이 다른 데이터형도 추가할 수 있고, key에 정수형도 추가할 수 있습니다.
딕셔너리 데이터(key, value) 삭제
>>> del kor_eng[1]
>>> kor_eng[1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 1
>>> kor_eng
{'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl', '파이썬': 'python', 'info': {'pages': 200, 'year': 2020}}
딕셔너리에서 데이터를 삭제하는 방법은 del 딕셔너리변수명[키]를 하면 됩니다.
딕셔너리 데이터 갱신(update)
>>> kor_eng['info'] = {'pages':201, 'year':2020}
>>> kor_eng['info']
{'pages': 201, 'year': 2020}
딕셔너리의 데이터를 갱신하는 방법은 데이터를 추가하는 방법과 동일합니다. 동일한 키라면 update를 하게 됩니다.
딕셔너리에서 키(Key)만 뽑기
>>> kor_eng_keys = kor_eng.keys()
>>> kor_eng_keys
dict_keys(['동쪽', '서쪽', '학생', '소년', '소녀', '파이썬', 'info'])
>>> type(kor_eng_keys)
<class 'dict_keys'>
키만 뽑는 방법은 딕셔너리변수.keys()를 하는 것입니다. 이때 데이터를 뽑을 때 클래스가 dict_keys라는 타입으로 뽑게 됩니다.
딕셔너리에서 값(Value)만 뽑기
# kor_eng의 value 값들을 kor_eng_vals에 넣는다
>>> kor_eng_vals = kor_eng.values()
>>> kor_eng_vals
dict_values(['east', 'west', 'student', 'boy', 'girl', 'python', {'pages': 201, 'year': 2020}])
# kor_eng의 value 값들 만큼 loop를 돌고 v변수에 담아 출력한다
>>> for v in kor_eng.values():
... print(v)
...
east
west
student
boy
girl
python
{'pages': 201, 'year': 2020}
값을 뽑는 방법 역시 키를 뽑는것과 동일합니다. keys() 대신 values()를 넣어주면 됩니다.
딕셔너리를 리스트 형태로 받아오기
>>> kor_eng_items = kor_eng.items()
>>> kor_eng_items
dict_items([('동쪽', 'east'), ('서쪽', 'west'), ('학생', 'student'), ('소년', 'boy'), ('소녀', 'girl'), ('파이썬', 'python'), ('info', {'pages': 201, 'year': 2020})])
딕셔너리 형태를 리스트와 유사하게 출력하려면 items()를 사용하면 됩니다. kor_eng_items 변수를 보면 기존의 딕셔너리 값들은 튜플형태인 괄호 형태로 들어가 있고, 이를 리스트 형태인 대괄호로 한번 더 감싼 형태라는 것을 확인할 수 있습니다.
이렇게 리스트형으로 만들 경우, 반복문으로 처리하기가 수월해 집니다.
딕셔너리 for 반복문으로 출력
# 키만 출력하기
>>> for k in kor_eng.keys():
... print(k)
...
동쪽
서쪽
학생
소년
소녀
파이썬
info
# 키를 기반으로 value 출력하기
>>> for k in kor_eng.keys():
... print(k, '=>', kor_eng[k])
...
동쪽 => east
서쪽 => west
학생 => student
소년 => boy
소녀 => girl
파이썬 => python
info => {'pages': 201, 'year': 2020}
# 키와 밸류를 한번에 출력하기
>>> for k, v in kor_eng.items():
... print(k, v)
...
동쪽 east
서쪽 west
학생 student
소년 boy
소녀 girl
파이썬 python
info {'pages': 201, 'year': 2020}
for문으로 딕셔너리 형태의 값들을 출력하는 방식입니다. 개발자마다 취향이 다를 수 있겠지만 키와 값을 한번에 가져올 수 있고 파이썬만의 독특하고 강력한 for문을 즐기는 방법은 마지막 방법이라 말할 수 있겠습니다.
연관포스팅
2020/12/23 - [Language/Python] - [Python] 파이썬에서 튜플(Tuple) 다루기, 튜플 써야 할 때
'Language > Python' 카테고리의 다른 글
[Python] 파이썬 람다(Lambda) 함수 사용하기 (0) | 2020.12.26 |
---|---|
[Python] 파이썬 함수(Function) 사용법, 메소드(Method)와 차이 (0) | 2020.12.26 |
[Python] 파이썬에서 튜플(Tuple) 다루기, 튜플 써야 할 때 (0) | 2020.12.23 |
[Python] 파이썬에서 리스트 사용하기 (0) | 2020.12.23 |
[Python] 단일 값, 다중 값 입력받기 (input) (0) | 2020.12.19 |