1. 딕셔너리(Dictionary)란?
딕셔너리는 키(Key)와 값(Value)을 한 쌍으로 저장하는 자료 구조다. 중괄호({})를 사용하며, 키를 통해 빠르게 값에 접근할 수 있다.
student = {
"name": "Yuju",
"age": 22,
"major": "AI Engineering"
}
- 키는 고유해야 함 (중복 불가)
- 값은 중복 가능
- 가변성(Mutable) → 생성 후 수정 가능
2. 키와 값 접근
print(student["name"]) # Yuju
print(student.get("age")) # 22
dict[key]→ 해당 키의 값 반환 (없으면 오류)dict.get(key)→ 해당 키의 값 반환 (없으면None)
3. 딕셔너리 수정
3.1 값 변경
student["age"] = 23
print(student)
# {'name': 'Yuju', 'age': 23, 'major': 'AI Engineering'}
3.2 새 키-값 추가
student["grade"] = "A"
print(student)
# {'name': 'Yuju', 'age': 23, 'major': 'AI Engineering', 'grade': 'A'}
3.3 삭제
del student["major"] # 특정 키 삭제
grade = student.pop("grade") # 꺼내면서 삭제
student.clear() # 모든 데이터 삭제
4. 주요 메서드
person = {"name": "Yuju", "age": 22}
print(person.keys()) # dict_keys(['name', 'age'])
print(person.values()) # dict_values(['Yuju', 22])
print(person.items()) # dict_items([('name', 'Yuju'), ('age', 22)])
keys(): 키 전체 반환values(): 값 전체 반환items(): (키, 값) 쌍 반환
반복문과 함께 자주 사용된다.
for k, v in person.items():
print(k, ":", v)
5. 딕셔너리 응용
- 데이터 매핑 : 키를 기준으로 값 저장
- 빈도수 계산 : 원소 등장 횟수 세기
- 구조화된 데이터 표현 : JSON 형식과 유사
# 빈도수 계산 예시
text = "banana"
counter = {}
for ch in text:
counter[ch] = counter.get(ch, 0) + 1
print(counter) # {'b': 1, 'a': 3, 'n': 2}
6. 중첩 딕셔너리
딕셔너리 안에 또 다른 딕셔너리를 넣어 계층적 데이터를 표현할 수 있다.
students = {
"1001": {"name": "Yuju", "major": "AI"},
"1002": {"name": "HyeWon", "major": "CS"}
}
print(students["1001"]["name"]) # Yuju