본문 바로가기
판다스/기초 파이썬

[python] 3.8. 자료형 - 딕셔너리

by 김판다t 2024. 11. 6.

데이터 분석 입문을 위한 기초적인 파이썬 내용을 다룹니다. 데이터 분석은 주로 파이썬의 라이브러리인 판다스를 활용해 이루어지며, 이를 위해 기본적인 파이썬 개념에 대한 이해가 필요합니다. 하지만 이것은 파이썬을 완벽하게 숙달해야 한다는 의미는 아닙니다. 그렇기에 판다스와 데이터 분석에 입문할 수 있도록 핵심 파이썬 개념을 간략하게 제공할 것입니다.

 

 

3.8. 자료형 - 딕셔너리

딕셔너리

 

딕셔너리는 데이터를 키(key)와 밸류(value)의 쌍으로 저장하는 자료형으로, 각 데이터를 고유한 키를 통해 접근할 수 있는 구조를 갖추고 있습니다. 딕셔너리는 중괄호({})를 사용하며, 각 키와 밸류는 콜론(:)으로 연결됩니다. 이때 키는 반드시 불변성을 가져야 하며, 중복될 수 없습니다. 일반적으로 문자열이나 튜플이 키로 사용되며, 리스트는 불변성을 지니지 않기에 키로 사용할 수 없습니다. 밸류에는 파이썬의 모든 자료형을 사용할 수 있으며, 밸류의 중복은 허용됩니다.

딕셔너리를 생성하려면 중괄호 안에 각 키와 밸류를 콜론으로 연결하고, 여러 쌍을 콤마로 구분하여 입력합니다. 다음 예시는 '가'와 '나'라는 키에 각각 1과 2라는 밸류를 할당한 딕셔너리입니다.

# 딕셔너리 생성
dict1 = {'가': 1, '나': 2}

# 빈 딕셔너리 생성
empty_dict = {}
 
딕셔너리의 인덱싱

 

딕셔너리는 키를 사용해 원하는 데이터를 빠르게 추출할 수 있습니다. 대괄호 안에 키를 입력하면 해당 키에 맞는 밸류가 반환됩니다. 

# 딕셔너리의 키 인덱싱
a = {'가': 1, '나': 2} 
print(a['가']) # 결과: 1

딕셔너리에서 키를 사용한 인덱싱은 위치를 기반으로 하는 리스트의 인덱싱(location indexing)과 구분하여 키 인덱싱(key indexing)이라고 합니다.

 

딕셔너리의 원소 추가 및 수정

 

딕셔너리는 기존 키의 밸류를 수정하거나 새로운 키와 밸류를 추가할 수 있습니다. 특정 키로 인덱싱하여 값을 할당하면 해당 키의 밸류가 새로운 값으로 수정되며, 존재하지 않는 키에 값을 할당하면 새로운 키-밸류 쌍이 생성됩니다. 

# 딕셔너리의 원소 추가 및 수정
a = {'가': 1, '나': 2} 

a['가'] = 4 # 기존 키 '가'의 밸류를 4로 수정 
a['다'] = 3 # 새로운 키 '다'와 밸류 3을 추가 

print(a) # 결과: {'가': 4, '나': 2, '다': 3}

 

딕셔너리의 인덱싱, 항목 수정 및 생성 방법을 정리하면 다음과 같습니다. 

  키가 존재할 때 키가 존재하지 않을 때
dict[키] 인덱싱 KeyError
dict[키] = 값 항목 수정 항목 생성

 

get 함수

 

get 함수는 딕셔너리에서 특정 키에 해당하는 값을 안전하게 가져올 때 사용됩니다. 이 함수는 키가 존재하지 않을 경우에도 에러를 발생시키지 않습니다.

# 딕셔너리 생성
b = {'가': 1, '나': 2}

# get 함수로 키가 '가'인 값을 반환
print(b.get('가')) # 출력: 1

# get 함수로 키가 '다'인 값을 반환(에러가 발생하지 않음)
print(b.get('다')) # 출력: None

 

get 함수의 문법은 다음과 같습니다.

dictionary.get(key, default_value)

 

get 함수는 키가 존재하지 않을 때 반환할 값을 지정할 수 있습니다. 이를 통해 조건문 없이도 존재하지 않는 키의 반환 값을 설정할 수 있다는 점도 장점입니다.

# 존재하지 않는 키는 모두 3을 반환
print(b.get('다', 3)) # 출력: 3
print(b.get('라', 3)) # 출력: 3

 

판다스와 딕셔너리

 

※ 판다스는 기초 파이썬과 직접 관련이 없으므로, 추후 판다스를 학습한 후에 확인하셔도 됩니다.

판다스의 객체인 데이터 프레임과 시리즈는 딕셔너리 구조와 유사합니다. 시리즈는 1차원 딕셔너리와 유사하게 작동하며, 데이터 프레임은 2차원 딕셔너리와 비슷한 구조를 가지고 있습니다. 따라서 딕셔너리의 인덱싱을 통한 추출, 원소의 추가와 수정 방식은 판다스 객체를 다루는 방법과 유사합니다. 이 때문에 딕셔너리를 다루는 법을 정확히 숙지하는 것이 좋습니다. 그 외에도 딕셔너리는 판다스에서 주로 매퍼로서의 역할을 수행합니다.


 

유튜브에서 판다스 강의 중입니다.

https://www.youtube.com/@KimPandas