본문 바로가기
IT KNOWLEDGE

[Python 기초] 딕셔너리

by 알 수 없는 사용자 2022. 7. 20.

1.딕셔너리 만드는 방법

 

기본 딕셔너리 구조

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

만들어보기

dic = {'name':'Errormin', 
       'phone':'1011212334', 
       'birth':'12123'}

위에서 Key는 각각 'name', 'phone', 'birth'이고, 각각의 Key에 해당하는 Value는 'Errormin', '1011212334', '12123'이 된다.

딕셔너리 dic의 정보

keyvalue

name Errormin
phone 1011212334
birth 12123

출력해보자

dic = {'name':'Errormin', 
       'phone':'1011212334', 
       'birth':'12123'}

print(dic)

//출력 내용 : {'name': 'Errormin', 'phone': '1011212334', 'birth': '12123'}

딕셔너리 쌍 추가, 삭제하기

딕셔너리 여러 방법의 쌍 추가

a = {1: 'hi'}
a[2] = 'by'
a['name'] = 'ErrorMin'

print(a)

// 출력 내용 : {1: 'hi', 2: 'by', 'name': 'ErrorMin'}

a에 1 key와 Value에 hi가 추가되고

다른 방법으로

a. 에 2 key와 Value에 by가 추가

또 다른 방법으로

a에 name key와 Value에 ErrorMin이 추가되었다.


딕셔너리 요소 삭제하기

a = {1: 'hi'}
a[2] = 'by'
a['name'] = 'ErrorMin'

print(a)

del a[2]

print(a)

위 예제는 딕셔너리의 요소를 지워주는 del함수를 사용하여 요소를 지워주었다.

del a [2]는 Key값을 바라보고 있으며 출력은 아래와 같다.

// 출력 값
{1: 'hi', 2: 'by', 'name': 'ErrorMin'}
{1: 'hi', 'name': 'ErrorMin'}

위 코드에서 del a [2]를 지우자 2번 Key의 요소가 사라졌다.

 

여기서 del a [3]이라고 하면 name의 키와 Value가 사라질까?

사라지지 않는다. del 함수에는 정확한 Key값을 바라보아야 한다.

 

name의 Key와 Value를 지우려면 아래 코드와 같다.

a = {1: 'hi'}
a[2] = 'by'
a['name'] = 'ErrorMin'

print(a)

del a['name']

print(a)

// 출력 값
{1: 'hi', 2: 'by', 'name': 'ErrorMin'}
{1: 'hi', 2: 'by'}

딕셔너리에서 Key 사용해 Value 얻기

Key값을 사용하여 Value를 얻는 예제이다

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic['age'])

// 출력 값
27

print(dic ['age'])를 하게 되면 age의 Value값인 27이 출력된다.

print(dic ['phone'])를 하게 되면 어떤 값이 나올지 유추해보자. (바로 유추하지 못하면 처음부터 다시 알아보면 된다)

그만 알아보도록 하자...

 


딕셔너리 관련 함수들

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic.keys())

// 출력 값
dict_keys(['name', 'age', 'phone'])

keys() 함수가 어떤 함수일까 생각해보자

 

직관적으로 keys함수는 글자 그대로 key들이다.

print(dic.keys())를 사용하면 dic의 Key값이 출력된다.


dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic.values())

반대로 Values를 뽑을 땐 위와 같다.

코드를 보면서 key값을 뽑는 건 알겠는데 values도 있지 않을까?라는 생각을 하면서 계속해서 생각으로

다른 방법이 있지 않을까 라는 의심을 계속하는 것이 빠르게 배울 수 있는 길인 거 같다. (나만 그럴 수도 있다.)

 

주접은 그만 보고 다른 형식으로 출력하는 것을 봐보자

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic.values())

for k in dic.values():
    print(k)
    
// 출력
dict_values(['ErrorMin', 27, 121231231])

ErrorMin
27
121231231

 for문으로 dic의 Value를 출력해보았다.

당연히 반대로 for k in dic.keys()를 사용하면 key값들을 출력할 수 있다.


Value 리스트 만들기(values)

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(list[dic.keys()])

print(list[dic.values()])

# 출력
list[dict_keys(['name', 'age', 'phone'])]
list[dict_values(['ErrorMin', 27, 121231231])]

Key, Value 쌍 얻기(items)

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic.items())

# 출력
dict_items([('name', 'ErrorMin'), ('age', 27), ('phone', 121231231)])

items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다. dict_values 객체와 dict_items 객체 역시 dict_keys 객체와 마찬가지로 리스트를 사용하는 것과 동일하게 사용할 수 있다.


Key: Value 쌍 모두 지우기(clear)

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

dic.clear()
print(dic)

# 출력
{}

지워버렸다.


Key로 Value 얻기(get)

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print(dic.get('name'))

print(dic.get('phone'))

# 출력
ErrorMin
121231231

get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다. 앞에서 살펴보았듯이 dic.get('name')은 dic ['name']을 사용했을 때와 동일한 결괏값을 돌려받는다.


해당 Key가 딕셔너리 안에 있는지 조사하기(in)

dic = {'name': 'ErrorMin',
       'age' : 27,
       'phone' : 121231231}

print('name' in dic) # True
print('email' in dic) # False

# 출력
True
False

'name' 문자열은 dic 딕셔너리의 Key 중 하나이다. 따라서 'name' in dic를 호출하면 참(True)을 돌려준다. 반대로 'email'은 dic 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 돌려준다.


직접 타이핑하면서 해보는 것을 추천합니다.

 

'IT KNOWLEDGE' 카테고리의 다른 글

CMP  (0) 2022.07.22
CCNA 자격증에 대해 알아봅시다  (0) 2022.07.21
MongoDB에 대하여  (0) 2022.07.15
Datadog 소개  (0) 2022.07.13
파이썬 마스터에 대해 알아보자![1급 + 2급 + 3급]  (0) 2022.07.11

댓글