딕셔너리의 기본 구조
딕셔너리는 키와 값으로 구성된 순서 없는 가변 컬렉션입니다. 파이썬에서는 중괄호 {}로 정의하며, 각 항목은 키: 값 형태로 표현됩니다.
car_info = {
"manufacturer": "Porsche",
"model": "911",
"production_year": 1963
}
print(car_info)
# 출력 결과: {'manufacturer': 'Porsche', 'model': '911', 'production_year': 1963}
값 접근 방법
키 이름을 사용하여 특정 값을 가져올 수 있습니다. 두 가지 주요 방식이 있습니다.
# 방법 1: 대괄호 사용
value_1 = car_info["model"]
# 방법 2: get() 메서드 사용
value_2 = car_info.get("model")
값 수정
기존 키에 새로운 값을 할당하면 해당 항목이 업데이트됩니다.
car_info["production_year"] = 2019
print(car_info)
# 출력 결과: {'manufacturer': 'Porsche', 'model': '911', 'production_year': 2019}
반복 처리
딕셔너리를 반복할 때는 키 또는 값만 추출하거나, 둘 다 함께 처리할 수 있습니다.
# 모든 키 출력
for key in car_info:
print(key)
# 모든 값 출력
for value in car_info.values():
print(value)
# 키와 값 동시 반복
for k, v in car_info.items():
print(k, v)
키 존재 여부 확인
특정 키가 딕셔너리 내에 있는지 확인하려면 in 연산자를 사용합니다.
if "model" in car_info:
print("모델 정보가 존재합니다.")
항목 수 확인
len() 함수를 통해 딕셔너리의 항목 개수를 확인할 수 있습니다.
print(len(car_info)) # 출력: 3
새 항목 추가
새 키를 지정하고 값을 할당하면 자동으로 추가됩니다.
car_info["color"] = "red"
print(car_info)
항목 제거
여러 가지 메서드로 항목을 삭제할 수 있습니다.
# 특정 키 삭제 (pop)
car_info.pop("color")
# 마지막 삽입 항목 삭제 (popitem)
car_info.popitem()
# del 키워드로 특정 항목 삭제
del car_info["model"]
# 전체 딕셔너리 삭제
del car_info
# clear()로 내용 비우기
car_info.clear()
디크셔너리 복제
얕은 복사가 필요할 경우 copy() 또는 dict() 함수를 사용하세요.
original = {"a": 1, "b": 2}
copy_1 = original.copy()
copy_2 = dict(original)
중첩 딕셔너리
딕셔너리 안에 다른 딕셔너리가 포함될 수 있으며, 이를 중첩 구조라 합니다.
family = {
"child_1": {"name": "Phoebe Adele", "birth_year": 2002},
"child_2": {"name": "Jennifer Katharine", "birth_year": 1996},
"child_3": {"name": "Rory John", "birth_year": 1999}
}
dict() 생성자 사용
생성자 문법을 이용해 딕셔너리를 만들 수도 있습니다.
data = dict(manufacturer="Porsche", model="911", year=1963)
print(data)
# 출력: {'manufacturer': 'Porsche', 'model': '911', 'year': 1963}
주요 메서드 요약
| 메서드 | 설명 |
|---|---|
clear() | 모든 항목 삭제 |
copy() | 딥 코피 생성 |
get(key) | 키에 대한 값 반환 |
items() | 키-값 쌍의 리스트 반환 |
keys() | 키 목록 반환 |
values() | 값 목록 반환 |
pop(key) | 지정된 키 삭제 및 반환 |
popitem() | 마지막 항목 삭제 |
update(other_dict) | 다른 딕셔너리의 항목 병합 |
setdefault(key, default) | 키가 없으면 기본값 설정 |