본문 바로가기

프로그래밍 언어/Python

[Python 자료형] 딕셔너리 (Dictionary)


[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()

1
2
3
4
5
6
7
8
# 딕셔너리 선언
dic = {'Name':'James''Job':'Student''Favorite':'Umjugamu'}
 
# 딕셔너리 키 리스트로 가져오기
print dic.keys()
 
# 딕셔너리 값 리스트로 가져오기
print dic.values()
cs

1
2
['Job''Favorite''Name']
['Student''Umjugamu''James']
cs

- 딕셔너리 키, 값 쌍 튜플로 가져오기 : 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
6
# 딕셔너리 선언
dic = {'Name':'James''Job':'Student''Favorite':'Umjugamu'}
 
# 딕셔너리의 모든 키와 값 지우기
dic.clear()
print dic
cs

1
{}
cs


정리

딕셔너리는 키와 값으로 이루어진 자료형이고, 키는 유일해야 하며 순서가 없다.

만약 키가 중복되면 어떤 일이 일어날까?

1
2
3
4
5
# 딕셔너리 선언
dic = {'Name':'James''Name':'Conor''Favorite':'Umjugamu'}
 
# 딕셔너리의 모든 키와 값 지우기
print dic['Name']
cs

1
2
{'Favorite''Umjugamu''Name''Conor'}
Conor
cs

키가 중복되면 중복된 키 중 하나만 사용하고 나머지는 버린다. 그런데 그 하나가 무엇일지 정확히 알 수 없다.

키가 중복되는 문제가 발생하지 않도록 주의해서 사용해야 한다.