파이썬의 다양한 자료형 중 딕셔너리(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 |
댓글