- 딕셔너리(Dictionary) = key를 통해 value를 얻는 대응 관계를 갖는 자료형.
# key와 value의 쌍 여러 개를 중괄호 {}로 둘러싼 형태입니다.
개념 | 형태 | 뜻 |
딕셔너리 (Dictionary) |
D = {A : a, B : b, C : c} D = dict(Z) D = 변수 A,B,C = 이름표(key) a,b,c = 데이터(value) Z = 2개의 데이터 쌍 |
변수에 이름표와 데이터를 짝지은 세트를 저장한 것. (key-value set) |
d = {'a':1,'b':2,'c':3}
print(type(d))
<class 'dict'>
a = ['a','b','c']
b = [1,2,3]
c = zip(a,b)
d = dict(c)
print(d)
{'a': 1, 'b': 2, 'c': 3}
5-(1) 딕셔너리의 기본 특징
- key를 통한 접근
: 딕셔너리는 key를 통해서 value에 접근합니다.
# 리스트나 튜플처럼 순차적으로 해당 요솟값을 요구하지 않으므로 딕셔너리의 요소에는 순서나 인덱스가 없습니다.
d = {'a':1,'b':[1,2,3]}
print(d[0])
Error
- key가 가질 수 있는 자료형
: key는 변하면 안되므로 Immutable한 자료형을 사용합니다.
# 튜플은 사용할 수 있고, 리스트는 사용할 수 없습니다.
d = {(1,):'a',(2,3):'b'}
print(d)
{(1,): 'a', (2, 3): 'b'}
- value가 가질 수 있는 자료형
: value는 Mutable한 자료형과 Immutable한 자료형 모두를 사용할 수 있습니다.
d = {'a':1,'b':[1,2,3]}
print(d['b'])
[1, 2, 3]
- 고유한 key
: 딕셔너리의 key값은 고유하므로 중복이 불가합니다.
# 중복되는 key값을 설정할 경우 마지막 데이터쌍을 제외한 나머지가 무시됩니다.
d = {1:'a',1:'b'}
print(d)
{1: 'b'}
- 비어있는 딕셔너리
: 비어있는 딕셔너리를 만드는 방법은 2가지입니다.
① d = {}
② d= dict()
5-(2) 딕셔너리 데이터 추가하기
- key-value
함수 | 내용 | |
이름 | key-value | |
설명 | 딕셔너리D에 새로운 key-value쌍을 추가해. | |
형태 | D[A] = B | |
인자 | D = 딕셔너리 A = 추가할 데이터의 key B = 추가할 데이터의 value |
|
반환 | 반환없음. |
d = {'a':1,'b':[1,2,3]}
d['c'] = 5
print(d)
{'a': 1, 'b': [1, 2, 3], 'c': 5}
5-(3) 딕셔너리 데이터 삭제하기
- del
함수 | 내용 | |
이름 | del | |
설명 | 딕셔너리 D의 데이터 중 key가 A인 데이터쌍을 삭제해. | |
형태 | del D[A] | |
인자 | D = 딕셔너리 A = 삭제하고자 하는 데이터의 key |
|
반환 | 반환없음. |
d = {'a':1,'b':[1,2,3]}
del d['b']
print(d)
{'a': 1}
5-(4) key, value 리스트 만들기
- key 리스트
함수 | 내용 | |
이름 | .keys | |
설명 | 딕셔너리 D의 key만 모아서 리스트를 만들고 dict_keys 객체를 반환해줘. 단, dict_keys 객체는 List가 아니므로 List 고유의 함수는 사용할 수 없음. |
|
형태 | D.keys() | |
인자 | D = 딕셔너리 | |
반환 | dict_keys |
d = {'a':1,'b':[1,2,3],'c':'wow'}
d.keys()
dict_keys(['a', 'b', 'c'])
- value 리스트
함수 | 내용 | |
이름 | .values | |
설명 | 딕셔너리 D의 value만 모아서 리스트를 만들고 dict_values 객체를 반환해줘. 단, dict_values 객체는 List가 아니므로 List 고유의 함수는 사용할 수 없음. . |
|
형태 | D.values() | |
인자 | D = 딕셔너리 | |
반환 | dict_values |
d = {'a':1,'b':[1,2,3],'c':'wow'}
d.values()
dict_values([1, [1, 2, 3], 'wow'])
- key-value 쌍 리스트
함수 | 내용 | |
이름 | .items | |
설명 | 딕셔너리 D의 key-value 쌍만 모아서 튜플로 만들고, 그 튜플들을 리스트를 만들어서 dict_items 객체를 반환해줘. 단, dict_items 객체는 List가 아니므로 List 고유의 함수는 사용할 수 없음. |
|
형태 | D.items() | |
인자 | D = 딕셔너리 | |
반환 | dict_items |
5-(5) key로 value 얻기
함수 | 내용 | |
이름 | .get | |
설명 | 딕셔너리D의 x key에 해당하는 value를 반환해줘. | |
형태 | D.get(x,d) | |
인자 | D = 딕셔너리 x = key d = 디폴트 값 |
|
반환 | value 단, key가 존재하지 않을 때 디폴트값을 반환해. 단, 디폴트값이 설정되어 있지 않다면 None을 반환해. |
d = {'A':1,'B':2,'C':3}
print(d.get('B'))
2
d = {'A':1,'B':2,'C':3}
print(d.get('D',999))
999
☆2가지 value 얻는 방법 비교

5-(6) 해당 key가 딕셔너리에 포함되어 있는지 확인하기
함수 | 내용 | |
이름 | in | |
설명 | 해당키 x가 딕셔너리D에 있으면 True, 없으면 False를 반환해줘. | |
형태 | x in D | |
인자 | D = 딕셔너리 x = key |
|
반환 | bool |
d = {'name':'pey','birth':'1118'}
print('name' in d)
True
5-(7) key-value 쌍 모두 지우기
함수 | 내용 | |
이름 | .clear | |
설명 | 딕셔너리D의 key-value 쌍을 모두 지워줘. | |
형태 | D.clear() | |
인자 | D = 딕셔너리 | |
반환 | 반환 없음. |
d = {'name':'pey','birth':'1118'}
d.clear()
print(d)
{}
5-(8) 딕셔너리 내포
- 딕셔너리 내포 (Dictionary comprehension) = 조건문(for문, if문)을 딕셔너리 안에 배치하여 조건문의 반환값을 key와 value를 가지는 딕셔너리를 생성하는 방법.
개념 | 형태 | 뜻 |
딕셔너리 내포 | Dic= {a:b 조건문1 조건문2…} a = 조건문1의 조건문2를 실행할 key b = 조건문1의 조건문2를 실행할 value |
조건문1의 조건문2를 실행한 a의 반환값을 key로 b의 반환값을 value로 가지는 딕셔너리를 만들어. |
ex) 딕셔너리 내포 사용X
students = ['몽키', '선샤인', '시와', '톰']
scores = [85, 92, 78, 100]
score_dic = {}
for a, b in zip(students, scores) :
score_dic[a] = b*10
print(score_dic)
{'몽키': 850, '선샤인': 920, '시와': 780, '톰': 1000}
ex) 딕셔너리 내포 사용O
students = ['몽키', '선샤인', '시와', '톰']
scores = [85, 92, 78, 100]
score_dic = {a : b*10 for a, b in zip(students, scores)}
print(score_dic)
{'몽키': 850, '선샤인': 920, '시와': 780, '톰': 1000}
*참고 : 점프 투 파이썬
'Programming Language > Python' 카테고리의 다른 글
Ⅱ. 자료형 (6. 집합) (0) | 2022.09.05 |
---|---|
Ⅱ. 자료형 (4. 튜플) (0) | 2022.08.22 |
Ⅱ. 자료형 (3. 리스트) (0) | 2022.07.25 |
Ⅱ. 자료형 (2. 문자열) (0) | 2022.05.28 |
Ⅱ. 자료형 (1. 숫자형) (0) | 2022.04.27 |