파이썬 데이터 구조: 딕셔너리(Dictionary)
딕셔너리의 특징과 활용 방법
딕셔너리(Dictionary)는 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 파이썬의 데이터 구조입니다. 빠른 검색 속도와 구조화된 데이터를 관리할 수 있는 강력한 도구입니다. 이번 글에서는 딕셔너리의 특징과 활용 방법을 알아보겠습니다.
1. 딕셔너리란?
- 키-값 쌍(Key-Value Pair): 데이터를 키로 검색하고, 값으로 저장합니다.
- 변경 가능(Mutable): 데이터 추가, 수정, 삭제 가능.
- 중괄호(
{}
): 딕셔너리를 정의할 때 사용.
예제
1
2
3
4
5
6
7
8
9
# 딕셔너리 생성
person = {
"name": "Alice",
"age": 25,
"job": "Engineer"
}
print(person)
# 출력: {'name': 'Alice', 'age': 25, 'job': 'Engineer'}
2. 딕셔너리의 주요 특징
1) 고유한 키
- 딕셔너리의 키는 고유해야 하며, 중복을 허용하지 않습니다.
2) 키의 데이터 타입
- 키는 불변(Immutable) 타입(문자열, 숫자, 튜플 등)이어야 합니다.
3) 값의 데이터 타입
- 값은 모든 데이터 타입을 허용합니다.
예제
1
2
3
4
5
6
7
# 다양한 데이터 타입의 키와 값
data = {
1: "one",
"two": 2,
(3, 4): "tuple_key"
}
print(data)
3. 딕셔너리의 주요 메서드
메서드 | 설명 | 예제 | 결과 |
---|---|---|---|
get() | 키에 해당하는 값을 반환 | d.get('key') | 값 |
keys() | 모든 키 반환 | d.keys() | dict_keys([...]) |
values() | 모든 값 반환 | d.values() | dict_values([...]) |
items() | 키-값 쌍 반환 | d.items() | dict_items([(k, v), ...]) |
update() | 딕셔너리 병합 | d.update({'key': 'value'}) | {...} |
pop() | 키에 해당하는 값 제거 및 반환 | d.pop('key') | 값 |
clear() | 모든 요소 제거 | d.clear() | {} |
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
person = {"name": "Alice", "age": 25}
# 값 가져오기
print(person.get("name")) # 출력: Alice
# 키와 값 리스트
print(person.keys()) # 출력: dict_keys(['name', 'age'])
print(person.values()) # 출력: dict_values(['Alice', 25])
# 키-값 쌍 리스트
print(person.items()) # 출력: dict_items([('name', 'Alice'), ('age', 25)])
# 요소 추가 및 업데이트
person.update({"job": "Engineer"})
print(person) # 출력: {'name': 'Alice', 'age': 25, 'job': 'Engineer'}
4. 딕셔너리의 활용
1) 데이터 추가 및 수정
1
2
3
4
5
6
7
8
9
person = {"name": "Alice"}
# 데이터 추가
person["age"] = 25
print(person) # 출력: {'name': 'Alice', 'age': 25}
# 데이터 수정
person["name"] = "Bob"
print(person) # 출력: {'name': 'Bob', 'age': 25'}
2) 데이터 삭제
1
2
3
4
5
6
7
8
9
10
person = {"name": "Alice", "age": 25, "job": "Engineer"}
# 특정 키 삭제
del person["job"]
print(person) # 출력: {'name': 'Alice', 'age': 25}
# pop()으로 삭제
age = person.pop("age")
print(age) # 출력: 25
print(person) # 출력: {'name': 'Alice'}
3) 반복문과 딕셔너리
1
2
3
4
5
6
7
8
# 키와 값을 순회
person = {"name": "Alice", "age": 25}
for key, value in person.items():
print(f"{key}: {value}")
# 출력:
# name: Alice
# age: 25
4) 딕셔너리 컴프리헨션
- 딕셔너리를 간결하게 생성할 수 있는 구문.
1
2
3
squared = {x: x**2 for x in range(1, 6)}
print(squared)
# 출력: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
5. 딕셔너리 vs 리스트
특징 | 딕셔너리(Dictionary) | 리스트(List) |
---|---|---|
구조 | 키-값 쌍 | 값 |
검색 속도 | 키로 빠르게 검색 가능 | 순차적으로 검색 필요 |
수정 가능 여부 | 가능 | 가능 |
사용 사례 | 구조화된 데이터 저장 및 검색 | 순서가 중요한 데이터 저장 |
정리
- 딕셔너리는 키-값 쌍으로 데이터를 저장하며, 빠른 검색 속도와 구조화된 데이터 관리에 유용합니다.
- 메서드를 사용하여 데이터 추가, 삭제, 수정, 검색 작업을 효율적으로 수행할 수 있습니다.
- 반복문 및 딕셔너리 컴프리헨션으로 데이터 처리를 간단하게 구현 가능합니다.
다음 글 예고:
파이썬 데이터 구조 중 마지막으로 “세트(Set)”의 특징과 활용 방법을 살펴보겠습니다!
This post is licensed under CC BY 4.0 by the author.