##Python/0. 파이썬 기초
3-5. 파이썬 기초 : 자료형 (딕셔너리, Dictionary)
허밍-
2025. 3. 23. 10:09
안녕하세요, 허밍입니다 😊
이전 시간에는 **변경이 불가능한 자료형 '튜플'**에 대해 알아봤죠?
오늘은 **파이썬에서 가장 많이 사용하는 자료형 중 하나인 '딕셔너리(Dictionary)'**에 대해 알아볼게요.
딕셔너리는 '키(key)'와 '값(value)' 쌍으로 데이터를 저장하는 구조예요.
리스트나 튜플처럼 순서가 아닌, 이름표를 붙여 데이터를 저장하는 방식이라고 생각하시면 이해가 쉬워요.
🔑 딕셔너리란?
딕셔너리는 중괄호 {}를 사용해서 키-값 쌍을 정의합니다.
person = {
'name': '홍길동',
'age': 30,
'city': '서울'
}
위 코드처럼 '이름': '홍길동' 과 같이 키는 문자열, 값은 다양한 자료형이 될 수 있어요.
✅ 딕셔너리의 특징
- 중괄호 {}로 생성
- 키(Key)는 중복 불가, 값(Value)은 중복 가능
- 순서 없이 접근 (Python 3.7 이상부터는 입력 순서를 유지)
- 키를 통해 원하는 값을 빠르게 찾을 수 있음
- 가변(mutable) 자료형
📦 딕셔너리의 기본 사용법
값 접근하기
print(person['name']) # '홍길동'
print(person['age']) # 30
값 수정하기
person['age'] = 31
값 추가하기
person['job'] = '개발자'
값 삭제하기
del person['city']
🛠️ 딕셔너리 관련 함수들
person = {'name': '홍길동', 'age': 30, 'city': '서울'}
# 모든 키 가져오기
print(person.keys()) # dict_keys(['name', 'age', 'city'])
# 모든 값 가져오기
print(person.values()) # dict_values(['홍길동', 30, '서울'])
# 키-값 쌍 가져오기
print(person.items()) # dict_items([('name', '홍길동'), ('age', 30), ('city', '서울')])
# 키가 있는지 확인
print('age' in person) # True
# 안전하게 값 가져오기 (없을 경우 None 반환)
print(person.get('job')) # None
🔄 반복문에서의 딕셔너리 사용
for key in person:
print(key, person[key])
또는
for key, value in person.items():
print(f'{key} : {value}')
📚 딕셔너리 초기화 방법
# 방법 1
person = {'name': '홍길동', 'age': 30}
# 방법 2
person = dict(name='홍길동', age=30)
# 방법 3
keys = ['a', 'b', 'c']
values = [1, 2, 3]
person = dict(zip(keys, values)) # {'a': 1, 'b': 2, 'c': 3}
⚠️ 딕셔너리 키에 사용할 수 있는 자료형
- 불변 자료형만 키로 사용 가능 (예: 문자열, 숫자, 튜플)
- 리스트나 딕셔너리처럼 변경 가능한 자료형은 키로 사용할 수 없음
valid_key = { (1, 2): '가능' }
invalid_key = { [1, 2]: '불가능' } # TypeError 발생!
💡 딕셔너리를 사용하는 상황
- 사용자의 정보, 설정값, 구성 데이터 저장 등에서 매우 유용
- 데이터베이스 결과를 다룰 때도 많이 사용됨
- 빠른 검색이 필요한 경우 딕셔너리가 탁월한 성능을 발휘
🧠 기억해야 할 포인트
구분설명
자료형 | 딕셔너리(Dictionary) |
형태 | {키: 값} |
특징 | 키 중복 불가, 값 중복 가능 |
접근 방식 | 키를 통해 값에 접근 |
주요 메서드 | .keys(), .values(), .items(), .get() |
🏁 마무리하며
딕셔너리는 정말 자주 사용하는 자료형이에요.
복잡한 데이터를 정리하거나, 객체처럼 다루고 싶을 때 유용하죠!
다음 시간에는 파이썬의 집합(Set) 자료형에 대해 알아볼게요.
공감하셨다면 좋아요 한 번 꾹 눌러주세요 😊