파이썬 가이드 07 딕셔너리
딕셔너리 (Dictionary)
파이썬 딕셔너리(Dictionary)는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 자료구조입니다. 사전에서 단어를 찾으면 그에 대한 해설이 있는 것처럼, 딕셔너리에서는 키를 통해 해당 값에 빠르게 접근할 수 있습니다.
주요 특징: * 키-값 쌍 (Key-Value Pairs): 각 항목은 고유한 키와 그에 연결된 값으로 구성됩니다. * 변경 가능 (Mutable): 딕셔너리의 내용을 추가, 삭제, 수정할 수 있습니다. * 순서 유지 (Ordered): Python 3.7부터 딕셔너리는 삽입된 순서를 유지합니다. 이전 버전(Python 3.6 이하)에서는 순서가 없었습니다. * 고유한 키 (Unique Keys): 딕셔너리 내의 모든 키는 고유해야 합니다. 중복된 키가 있을 경우, 나중에 할당된 값이 이전 값을 덮어씁니다. * 불변하는 키 (Immutable Keys): 딕셔너리의 키는 변경 불가능한(immutable) 데이터 타입이어야 합니다. 예를 들어, 문자열, 숫자, 튜플은 키로 사용할 수 있지만, 리스트와 같이 변경 가능한 객체는 키로 사용할 수 없습니다. * 다양한 값 (Any Data Type Values): 값은 어떤 데이터 타입이든 될 수 있으며, 중복될 수도 있습니다.
딕셔너리 생성:
딕셔너리는 중괄호 {} 안에 키: 값 형태로 쌍을 나열하여 생성합니다.
<!-- -->
# 빈 딕셔너리 생성
my_dict = {}
<!-- -->
# 키-값 쌍으로 딕셔너리 생성
student_info = {
"name": "Alice",
"age": 30,
"city": "New York"
}
dict() 함수를 사용하여 딕셔너리를 만들 수도 있습니다.
another_dict = dict(name="Bob", age=25)
주요 작업 및 메서드: * 값 접근: 키를 사용하여 값에 접근할 수 있습니다.
```python
print(student_info["name"]) # 출력: Alice
```
-
값 변경: 키를 사용하여 값을 변경할 수 있습니다.
student_info["age"] = 31 print(student_info) # 출력: {'name': 'Alice', 'age': 31, 'city': 'New York'} -
항목 추가: 새로운 키-값 쌍을 추가할 수 있습니다.
student_info["major"] = "Computer Science" print(student_info) # 출력: {'name': 'Alice', 'age': 31, 'city': 'New York', 'major': 'Computer Science'} -
항목 제거:
del키워드,pop()또는popitem()메서드를 사용하여 항목을 제거할 수 있습니다.del student_info["city"] print(student_info) # 출력: {'name': 'Alice', 'age': 31, 'major': 'Computer Science'} removed_age = student_info.pop("age") print(removed_age) # 출력: 31 print(student_info) # 출력: {'name': 'Alice', 'major': 'Computer Science'} -
모든 항목 제거:
clear()메서드를 사용하여 딕셔너리의 모든 항목을 제거할 수 있습니다.student_info.clear() print(student_info) # 출력: {} -
키 확인:
in키워드를 사용하여 특정 키가 딕셔너리에 존재하는지 확인할 수 있습니다.print("name" in student_info) # 출력: True *
keys():* 딕셔너리의 모든 키를 반환합니다.*
values():* 딕셔너리의 모든 값을 반환합니다.*
items():* 딕셔너리의 모든 키-값 쌍을 튜플 형태의 리스트로 반환합니다.-
*
get():* 지정된 키의 값을 반환합니다. 키가 없으면 오류 대신None을 반환하거나 기본값을 지정할 수 있습니다.print(student_info.get("name")) print(student_info.get("grade", "N/A")) # 키가 없으면 "N/A" 반환