Coding & Programming/Python 기초(A-Z)

[Python:파이썬:기초] 6. 자료형 - 딕셔너리(Dictionary)

mainCodes 2021. 5. 15. 09:07

[Python:파이썬:기초] 6. 자료형 - 딕셔너리(Dictionary)

 

 

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 딕셔너리(Dictionary)는 중괄호('{', '}')를 사용하며 여러 개의key, value 쌍을 구성할 수 있는 자료형입니다.

 

{Key1:Value1, Key2:Value2, Key3:Value3, Key3:Value3 ...}

 

🔗 딕셔너리 변수 선언 및 초기화 예

d1 = { 'name':'홍길동', 'gender':'남성', 'number': '12345', 'phone':'010-123-4567'}

d2 = { 1:'홍길동', 2:'남성', 3: '12345', 4:'010-123-4567'}

d3 = { 1:[1,2,3], 2:[4,5,6], 3:[7, 8, 9]}

d4 = { '국어':100, '영어':95, '수학':100, '과학': 90}

#딕셔너리 안에 딕셔너리
d5 = {'namecard1':{ 'name':'홍길동1', 'gender':'남성', 'number': '12345'},

     'namecard2':{ 'name':'김콩쥐', 'gender':'여성', 'number': '54321'} }    

 

딕셔너리는 key와 value로 구성되어 있기 때문에 리스트와 튜플과 같이 l1[0], l1[1], l1[2] ....l1[n] 형태의 요소 값(인덱스)을 이용할 수 없습니다. 예제에서와 같이 key를 이용하여 value를 구해야 합니다.

 

변수 d1의 Key와 Value 정보

Key Value
name 홍길동
gender 남성
number 12345
phone 010-123-4567

 

딕셔너리는 단순 문자열이나 리스트로 정리하거나 표현하기 어려운 명함, 성적관리, 물건가격 등을 key, value로 의미를 부여할 수 있도록 해줍니다. 

 

아래 예제는 딕셔너리 변수 선언과 초기화, 모든 key, value 쌍 출력, key값으로 value 찾기, key와 value 쌍 추가/삭제, 리스트화, 길이 구하기 등을 보여줍니다. 예제 코드 내의 주석을 참고하세요.

 

🔗 딕셔너리(Dictionary)형 변수 선언, 초기화, 출력 예제(Example):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 변수 선언, 초기화
d1 = { 'name':'홍길동''gender':'남성''number''12345''phone':'010-123-4567'}
d2 = { 1:'홍길동'2:'남성'3'12345'4:'010-123-4567'}
d3 = { 1:[1,2,3], 2:[4,5,6], 3:[789]}
d4 = { '국어':100'영어':95'수학':100'과학'90}
 
#딕셔너리 안에 딕셔너리
d5 = {'namecard1':{ 'name':'홍길동1''gender':'남성''number''12345'},
     'namecard2':{ 'name':'김콩쥐''gender':'여성''number''54321'} }    
d8 = dict()   #빈 딕셔너리
 
#출력
print("d1의 값 = ", d1)
print("d1의 값 = {}".format(d1))
#print("d1 * 2의 값 = ", d1*2)  #오류 발생(연산 불가)
print("d1의 key값 = ", d1.keys())                      #key 값들 출력
print("d1의 value값 =", d1.values())                   #value 값들 출력
print("d1의 모든 key, value값 =", d1.items())          #모든 key, value 쌍 출력
print("d1에 name key가 있는지 검사 = "'name' in d1)
print("d1에 address key가 있는지 검사 = "'address' in d1)
print("d1의 모든 key와 value를 삭제 후 출력 = ", d1.clear()) #초기화
print("d1: 'gender' key의 value 값 = ", d1.get('gender'))   #key 검색결과 출력
 
print("d2: 3 key의 value 값 = ", d2.get(3)) #key 검색결과 출력
print("d2: 4 key의 value 값 = ", d2.get(4)) #key 검색려과 출력
 
del d3[1]         #key를 이용하여 key, value 쌍 삭제, del d3[key]
print("d3의 1 key 삭제 후 출력 = ", d3)
 
d3[1= [100200300#딕셔너리 쌍 추가
print("d3의 1 key 추가 후 출력 = ", d3)
print("d4: \'영어\' key의 value 값 = ", d4.get('영어'))
print("d4: \'수학\' key의 value 값 = ", d4.get('수학'))
print("d4: \'사회\' key의 value 값 = ", d4.get('사회'))
 
print("d4의 key 들의 리스트화 = ", list(d4.keys()))
print("d4의 value 들의 리스트화 = ", list(d4.values()))
print("d4의 key, value 들의 리스트화 = ", list(d4.items()))
 
print("d4의 길이 = "len(d4))
print("d5: namecard2 key의 value 값 = ", d5.get('namecard2'))
 
d6 = d5.get('namecard2')
print("d6: namecard2 : name key의 value 값 = ", d6.get('name'))
print("d6: namecard2 : number key의 value 값 = ", d5['namecard2']['number'])
print("d8의 값 = ", d8)
 
print("d3의 자료형 = ", type(d3))
print("d4의 자료형 = ", type(d4))
cs

 

🔗 실행결과(Output):

 

 

이상 JollyTree였습니다 (•̀ᴗ•́)و