파이썬 매핑 타입(Mapping Type)이란?
매핑(Mapping) 객체는 해시 테이블(hash table)의 값을 임의의 객체와 연결해 주는 자료 구조입니다. 파이썬에는 딕셔너리(dictionary)라는 대표적인 매핑 타입이 있으며, 딕셔너리는 변경 가능(mutable)한 자료형이라 실행 중에 자유롭게 요소를 추가하거나 수정할 수 있습니다.
딕셔너리의 키(key)는 임의의 값을 사용할 수 있고, 값(value)으로는 리스트, 정수 등 다양한 종류의 객체를 저장할 수 있다는 점이 큰 장점입니다.
딕셔너리의 주요 메서드와 연산
딕셔너리를 다룰 때 자주 사용되는 메서드와 연산은 다음과 같습니다.
len(d)
len() 함수는 딕셔너리에 저장된 요소(키-값 쌍)의 개수를 반환합니다.
d[k]
키 'k'에 해당하는 딕셔너리 d의 값을 반환합니다. 만약 해당 키가 매핑되어 있지 않다면 KeyError 예외가 발생할 수 있습니다.
iter(d)
딕셔너리의 키들을 순회하는 반복자(iterator)를 반환합니다. iter(d.keys())를 사용해도 동일한 작업을 수행할 수 있습니다.
get(key[, default])
get() 메서드는 지정한 키에 대응하는 값을 반환합니다. 두 번째 인자는 선택 사항이며, 키가 존재하지 않을 경우 미리 지정한 기본값(default)을 반환하므로 KeyError 없이 안전하게 값을 조회할 수 있습니다.
items()
딕셔너리의 모든 요소를 (키, 값) 쌍 형태로 반환합니다.
keys()
딕셔너리에 있는 모든 키의 목록을 반환합니다.
values()
딕셔너리에 있는 모든 값의 목록을 반환합니다.
update(elem)
딕셔너리의 요소를 elem의 내용으로 갱신합니다. 새로운 키-값 쌍을 추가하거나 기존 키의 값을 수정할 때 사용됩니다.
예제 코드
myDict = {'ten' : 10, 'twenty' : 20, 'thirty' : 30, 'forty' : 40}
print(myDict)
print(list(myDict.keys()))
print(list(myDict.values()))
# 키-값 쌍으로 아이템 생성하기
print(list(myDict.items()))
myDict.update({'fifty' : 50})
print(myDict)
실행 결과
{'ten': 10, 'twenty': 20, 'thirty': 30, 'forty': 40}
['ten', 'twenty', 'thirty', 'forty']
[10, 20, 30, 40]
[('ten', 10), ('twenty', 20), ('thirty', 30), ('forty', 40)]
{'ten': 10, 'twenty': 20, 'thirty': 30, 'forty': 40, 'fifty': 50}
마무리
딕셔너리는 파이썬에서 가장 널리 사용되는 자료형 중 하나로, 키를 통해 빠르게 값을 조회할 수 있는 것이 특징입니다. 참고로 파이썬 3.7 이상부터는 딕셔너리가 요소를 삽입한 순서 그대로 유지하므로, 순서가 중요한 데이터 처리에도 활용할 수 있습니다. 위에서 소개한 메서드들을 잘 익혀두면 실무에서 데이터를 다룰 때 큰 도움이 됩니다.