Language/Python

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

개발기록자 2023. 5. 8.

파이썬의 다양한 자료형 중 딕셔너리(Dictionary)는 키와 값을 쌍으로 저장하는 자료형으로, 키를 기반으로 값을 검색하거나 수정하는 등의 작업에 사용될 수 있습니다. 이번 글에서는 파이썬의 딕셔너리 자료형에 대해 알아보겠습니다.


딕셔너리(Dictionary)란?

파이썬의 딕셔너리는 키(Key)와 값(Value)을 쌍으로 저장하는 자료형입니다. 중복된 키를 허용하지 않으며, 각 키는 유일한 값으로 존재합니다. 딕셔너리는 중괄호({ })를 이용하여 생성하며, 각 키와 값을 콜론(:)으로 구분합니다.


딕셔너리 생성하는 방법

딕셔너리를 생성하는 방법을 아래 예시 코드를 보면서 알아보겠습니다.

 

1. 중괄호({ })를 이용한 방법

- 빈 딕셔너리 생성

dic1 = {}

print(type(dic1)) # <class 'dict'>
print(dic1) # {}

 

- 기본 딕셔너리 생성

dic2 = {'name':'Alice', 'age':20, 'gender':'Female'}

print(dic2) # {'name': 'Alice', 'age': 20, 'gender': 'Female'}

 

2. dict()을 이용한 방법

- 빈 딕셔너리 생성

dic1 = dict()

print(type(dic1)) # <class 'dict'>
print(dic1) # {}

 

- 리스트를 이용한 딕셔너리 생성

# 리스트의 리스트
dic2 = dict([['name', 'Alice'], ['age', 20], ['gender', 'Female']])

print(dic2) # {'name': 'Alice', 'age': 20, 'gender': 'Female'}

# 튜플의 리스트
dic3 = dict([('name', 'Alice'), ('age', 20), ('gender', 'Female')])

print(dic3) # {'name': 'Alice', 'age': 20, 'gender': 'Female'}

 

- 딕셔너리를 이용한 딕셔너리 생성

dic4 = dict({'name': 'Alice', 'age': 20, 'gender': 'Female'})

print(dic4) # {'name': 'Alice', 'age': 20, 'gender': 'Female'}

 

- zip()을 이용한 생성

keys = ['name', 'age', 'gender']
values = ['Alice', 20, 'Female']

dic5 = dict(zip(keys, values))

print(dic5) # {'name': 'Alice', 'age': 20, 'gender': 'Female'}

딕셔너리 키, 값 접근

딕셔너리에서 키, 값에 접근하는 몇 가지 방법을 아래 예시 코드를 보면서 알아보겠습니다.

 

1. Key를 사용해 Value 가져오기

- 대괄호([ ]) 접근

dic1 = {'apple': 2, 'banana': 3, 'orange': 4}

print(dic1['apple']) # 2
print(dic1['peach']) # KeyError: 'peach'

※ 존재하지 않는 키에 접근할 경우 KeyError 발생

 

- get() 접근

dic2 = {'apple': 2, 'banana': 3, 'orange': 4}

print(dic2.get('apple')) # 2
print(dic2.get('peach')) # None
print(dic2.get('peach', 'Unknown')) # Unknown

※ get()을 이용하여 존재하지 않는 키에 접근할 경우 기본값으로 None이 반환되며, 원하는 반환 값을 지정할 수 있습니다.

 

2. item()을 사용하여 키, 값 쌍 가져오기

dic = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

print(dic.items()) # dict_items([('apple', 2), ('banana', 3), ('orange', 4), ('peach', 1)])

for key, value in dic.items():
    print(key, value)

# apple 2
# banana 3
# orange 4
# peach 1

 

3. keys()를 사용하여 키 가져오기

dic = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

print(dic.keys()) # dict_keys(['apple', 'banana', 'orange', 'peach'])

for key in dic.keys():
    print(key)

# apple
# banana
# orange
# peach

 

4. values()를 사용하여 값 가져오기

dic = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

print(dic.values()) # dict_values([2, 3, 4, 1])

for value in dic.values():
    print(value)

# 2
# 3
# 4
# 1

추가와 삭제, 수정

1. 추가

- 대괄호([ ]) 형태 추가하기(요소 1개 추가)

dic1 = {'apple':2, 'banana':3}

dic1['orange'] = 4
print(dic1) # {'apple': 2, 'banana': 3, 'orange': 4}

 

- update()로 추가하기(요소 1개 이상 추가)

dic2 = {'apple':2, 'banana':3}

dic2.update({'orange':4, 'peach':1})
print(dic2) # {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

 

- setdefault()로 추가하기

dic = {'apple': 2, 'banana': 3}

# 이미 key가 존재할 경우, 존재하고 있는 value 반환
print(dic.setdefault('apple', 10)) # 2
print(dic) # {'apple': 2, 'banana': 3}

# key가 존재하지 않을 경우, key:None(기본값) 추가
print(dic.setdefault('orange')) # None
print(dic) # {'apple': 2, 'banana': 3, 'orange': None}

# key가 존재하지 않을 경우, 지정한 key:value 추가
print(dic.setdefault('peach', 1)) # 1
print(dic) # {'apple': 2, 'banana': 3, 'orange': None, 'peach': 1}

 

2. 삭제

- del() 사용하여 삭제(요소 1개)

dic1 = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

del dic1['orange']
print(dic1) # {'apple': 2, 'banana': 3, 'peach': 1}

 

- clear() 사용하여 삭제(모든 요소 삭제, 초기화)

dic2 = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

dic2.clear()
print(dic2) # {}

 

3. 수정

- 키를 이용하여 수정

dic1 = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

dic1['apple'] = 10
print(dic1) # {'apple': 10, 'banana': 3, 'orange': 4, 'peach': 1}

 

-  update()를 이용하여 수정

dic2 = {'apple': 2, 'banana': 3, 'orange': 4, 'peach': 1}

dic2.update({'apple':20, 'banana':30})
print(dic2) # {'apple': 20, 'banana': 30, 'orange': 4, 'peach': 1}

이번 글에서는 파이썬의 딕셔너리의 기본 개념과 생성 방법, 수정 등 다양한 함수에 대해 알아보았습니다. 딕셔너리는 데이터를 빠르고 쉽게 관리할 수 있게 해주는 유용한 자료형으로, 딕셔너리를 잘 활용하면 데이터 작업에서 큰 도움이 될 것입니다.


함께 보면 좋은 글

 

[Python] 리스트(List) 자료형

파이썬은 다양한 자료형을 지원하며, 그중 리스트(List)는 자주 사용되는 자료형 중 하나입니다. 이번 글에서는 파이썬의 리스트에 대해 알아보겠습니다. 리스트(List)란? 리스트는 순서가 있는 값

dev-records.tistory.com

 

 

'Language > Python' 카테고리의 다른 글

[Python] 파이썬 가상환경  (0) 2023.05.11
[Python] 파이썬 3.10 새로운 기능  (0) 2023.05.10
[Python] 집합(Set) 자료형  (0) 2023.05.02
[Python] 튜플(Tuple) 자료형  (0) 2023.05.01
[Python] 리스트(List) 자료형  (0) 2023.04.30

댓글