[Python]딕셔너리(Dictionary)

nongnola·2024년 7월 2일

Python

목록 보기
9/17

딕셔너리란?

딕셔너리는 파이썬의 자료구조 중 하나로, 키와 값의 쌍으로 이루어진 데이터를 저장할 수 있는 가변적인 배열입니다. 다른 언어에서는 해시맵(HashMap)이나 연관 배열(Associative Array)로 불리기도 합니다. 딕셔너리는 중괄호 {}로 묶여 있으며, 각 키와 값은 콜론 :으로 구분됩니다.

예를 들어, 학생들의 이름과 점수를 저장하려면 다음과 같이 사용할 수 있습니다.

students_scores = {
    "Alice": 85,
    "Bob": 92,
    "Charlie": 78
}

이 예시에서 "Alice", "Bob", "Charlie"는 키(key)이고, 각각의 점수인 85, 92, 78이 값(value)입니다.


딕셔너리를 사용하는 이유

딕셔너리는 특정 값을 빠르게 검색하거나 수정할 수 있다는 점에서 매우 유용합니다. 리스트나 튜플과 같은 다른 자료구조에 비해, 딕셔너리는 키를 통해 값에 접근할 수 있기 때문에 더 효율적입니다.

예를 들어, 학생의 이름을 키로, 점수를 값으로 저장하면, 특정 학생의 점수를 검색하는 작업이 매우 간편해집니다.

# 학생 Bob의 점수 검색
print(students_scores["Bob"])  # 출력: 92

이와 같이 딕셔너리를 사용하면 원하는 값을 빠르게 검색할 수 있습니다.


딕셔너리의 사용법

딕셔너리의 기본적인 사용법을 알아보겠습니다. 딕셔너리를 생성하고, 값을 추가하고, 값을 수정하고, 값을 삭제하는 방법을 살펴보겠습니다.

딕셔너리 생성

# 빈 딕셔너리 생성
empty_dict = {}

# 초기 값을 가진 딕셔너리 생성
person = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

값 추가 및 수정

딕셔너리에 새로운 키-값 쌍을 추가하거나 기존 값을 수정할 수 있습니다.

# 값 추가
person["email"] = "john@example.com"

# 값 수정
person["age"] = 31

값 삭제

딕셔너리에서 특정 키-값 쌍을 삭제할 수 있습니다.

# 특정 키-값 쌍 삭제
del person["city"]

# 모든 키-값 쌍 삭제
person.clear()

딕셔너리 예시

다양한 상황에서 딕셔너리를 어떻게 사용할 수 있는지 예시를 통해 알아보겠습니다.

예시 1: 전화번호부

딕셔너리를 사용하여 전화번호부를 만들 수 있습니다.

phone_book = {
    "Alice": "123-456-7890",
    "Bob": "987-654-3210",
    "Charlie": "555-555-5555"
}

# Charlie의 전화번호 검색
print(phone_book["Charlie"])  # 출력: 555-555-5555

예시 2: 학생들의 과목별 점수

학생들의 과목별 점수를 저장하는 딕셔너리 예시입니다.

student_grades = {
    "Alice": {"Math": 90, "Science": 85},
    "Bob": {"Math": 78, "Science": 82}
}

# Alice의 수학 점수 검색
print(student_grades["Alice"]["Math"])  # 출력: 90

딕셔너리를 사용할 때 주의할 점

딕셔너리를 사용할 때 주의해야 할 몇 가지 사항이 있습니다.

키는 고유해야 함

딕셔너리의 키는 고유해야 하며, 동일한 키를 두 번 사용하면 마지막 값만 저장됩니다.

example = {
    "key1": "value1",
    "key1": "value2"
}
print(example["key1"])  # 출력: value2

키는 변경 불가능한 타입이어야 함

딕셔너리의 키는 리스트와 같은 변경 가능한(mutable) 타입이 될 수 없습니다. 일반적으로 문자열, 숫자, 튜플과 같은 변경 불가능한(immutable) 타입이 사용됩니다.

# 올바른 예시
valid_dict = {
    "name": "Alice",
    1: "one",
    (2, 3): "tuple"
}

# 잘못된 예시
invalid_dict = {
    ["list"]: "value"  # 오류 발생
}

이러한 주의사항을 염두에 두고 딕셔너리를 사용하면, 보다 효율적이고 오류 없이 데이터를 관리할 수 있습니다.

0개의 댓글