티스토리 뷰

안녕하세요, 허밍입니다 😊
이전 시간에는 **변경이 불가능한 자료형 '튜플'**에 대해 알아봤죠?
오늘은 **파이썬에서 가장 많이 사용하는 자료형 중 하나인 '딕셔너리(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) 자료형에 대해 알아볼게요.
공감하셨다면 좋아요 한 번 꾹 눌러주세요 😊