[Python 자료형] 딕셔너리 (Dictionary)
딕셔너리 자료형
딕셔너리 자료형은 키와 값을 한 쌍으로 가지는 자료형이다. 인덱스가 아닌 키를 이용해서 데이터를 찾을 수 있다. Key-Value 구조는 딕셔너리 자료형 뿐만 아니라 웹에서 자료를 주고 받는 형식 중 하나인 JSON에도 사용된다. 딕셔너리에 저장된 자료는 순서가 없고 키가 유일하다.
딕셔너리는 중괄호로 묶어서 표현하며 키와 값이 모두 있어야 한다.
1 2 3 4 5 | # 딕셔너리 선언 dic = {'Name':'James', 'Job':'Student'} print dic print dic['Name']+ ' is ' + dic['Job'] | cs |
1 2 | {'Job': 'Student', 'Name': 'James'} James is Student | cs |
리스트나 튜플은 숫자 인덱스를 이용해 값을 사용하지만, 딕셔너리는 키를 이용해 값을 사용한다.
키, 값을 추가, 삭제하는 방법은 아래와 같다.
1 2 3 4 5 6 7 8 | # 딕셔너리 선언 dic = {'Name':'James', 'Job':'Student'} dic['Favorite'] = 'Umjugamu' print dic del dic['Favorite'] print dic | cs |
1 2 | {'Job': 'Student', 'Favorite': 'Umjugamu', 'Name': 'James'} {'Job': 'Student', 'Name': 'James'} | cs |
위 결과 값에서 중요한 사실을 알 수 있다. 딕셔너리는 순서가 없다.
딕셔너리 내장 함수
- 딕셔너리 키 or 값 리스트로 가져오기 : keys(), values()
- 딕셔너리 키, 값 쌍 튜플로 가져오기 : items()
1 2 3 4 5 | # 딕셔너리 선언 dic = {'Name':'James', 'Job':'Student', 'Favorite':'Umjugamu'} # 딕셔너리 키, 값 쌍 튜플로 가져오기 print dic.items() | cs |
1 | [('Job', 'Student'), ('Favorite', 'Umjugamu'), ('Name', 'James')] | cs |
- 딕셔너리 키로 값 가져오기 : get(key)
1 2 3 4 5 6 | # 딕셔너리 선언 dic = {'Name':'James', 'Job':'Student', 'Favorite':'Umjugamu'} # 딕셔너리 키로 값 가져오기 print dic.get('Name') print dic['Name'] | cs |
1 2 | James James | cs |
- 딕셔너리에 해당 키가 있는지 검사하기 : in
1 2 3 4 5 6 | # 딕셔너리 선언 dic = {'Name':'James', 'Job':'Student', 'Favorite':'Umjugamu'} # 딕셔너리에 해당 키가 있는지 검사하기 print 'Job' in dic print 'Age' in dic | cs |
1 2 | True False | cs |
- 딕셔너리의 모든 키와 값 지우기 : clear()
정리
딕셔너리는 키와 값으로 이루어진 자료형이고, 키는 유일해야 하며 순서가 없다.
만약 키가 중복되면 어떤 일이 일어날까?
1 2 3 4 5 | # 딕셔너리 선언 dic = {'Name':'James', 'Name':'Conor', 'Favorite':'Umjugamu'} # 딕셔너리의 모든 키와 값 지우기 print dic['Name'] | cs |
1 2 | {'Favorite': 'Umjugamu', 'Name': 'Conor'} Conor | cs |
키가 중복되면 중복된 키 중 하나만 사용하고 나머지는 버린다. 그런데 그 하나가 무엇일지 정확히 알 수 없다.
키가 중복되는 문제가 발생하지 않도록 주의해서 사용해야 한다.
'아카이브 > Python' 카테고리의 다른 글
[Python 제어문] 조건문 if elif else (0) | 2015.07.15 |
---|---|
[Python 자료형] 집합 (Set) (1) | 2015.07.15 |
[Python 자료형] 튜플 (Tuple) (0) | 2015.07.15 |
[Python 자료형] 리스트 (List) (0) | 2015.07.15 |
[Python 자료형] 문자열 (String) - 2 (0) | 2015.07.14 |