Python/Python

Python의 딕셔너리 자료구조 소개

임베디드 친구 2025. 6. 25. 19:35
728x90
반응형

Python의 딕셔너리 자료구조 소개

안녕하세요, 'Deep Python Studio' 블로그 방문자 여러분! 오늘은 Python에서 매우 유용하게 사용되는 자료구조 중 하나인 딕셔너리(dictionary)에 대해 소개하려고 합니다. 딕셔너리는 Python에서 키(key)와 값(value)을 한 쌍으로 묶어 데이터를 효율적으로 저장하고 다룰 수 있게 해주는 매우 강력한 자료구조입니다. 이 글을 통해 딕셔너리의 특징과 사용법, 그리고 기본적인 조작 방법을 알아보도록 하겠습니다.

1. 딕셔너리란?

딕셔너리는 키와 값의 쌍으로 데이터를 저장하는 자료구조입니다. 즉, 하나의 값을 특정 키로 접근할 수 있도록 해주며, 이는 데이터를 빠르고 효율적으로 검색하거나 수정하는 데 유리합니다. 파이썬에서 딕셔너리는 중괄호 {}를 사용하여 정의합니다.

# 딕셔너리의 기본적인 정의 예시
dict_example = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}

위의 예시에서, "name", "age", "city"가 키이고 각각의 키에 매핑된 "Alice", 25, "New York"이 값입니다.

2. 딕셔너리의 주요 특징

  • 키-값 쌍으로 구성: 딕셔너리는 키와 값이 서로 연관된 구조입니다. 키는 고유해야 하며, 값을 중복해서 사용할 수 있습니다.
  • 순서 보장: Python 3.7 이후부터 딕셔너리는 입력된 순서를 유지합니다. 따라서 데이터의 순서를 신경 써야 하는 경우에도 사용할 수 있습니다.
  • 변경 가능(mutable): 딕셔너리는 값을 추가, 삭제, 수정할 수 있어 유연하게 데이터를 다룰 수 있습니다.
  • 키는 변경 불가능(immutable): 딕셔너리의 키는 변경 불가능한 자료형이어야 합니다. 문자열, 숫자, 튜플 등이 키로 사용될 수 있습니다.

3. 딕셔너리 생성과 기본 사용법

3.1 딕셔너리 생성

딕셔너리는 여러 가지 방법으로 생성할 수 있습니다. 가장 흔히 사용하는 방법은 중괄호 {}를 이용하는 것이며, dict() 함수를 사용할 수도 있습니다.

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

# 키-값 쌍을 가진 딕셔너리 생성
dict_example = {
    "name": "Bob",
    "age": 30,
    "is_student": False
}

# dict() 함수를 사용한 딕셔너리 생성
dict_from_function = dict(name="Charlie", age=28, city="Los Angeles")

3.2 딕셔너리 접근

딕셔너리의 값에 접근하려면 를 사용하면 됩니다. 키가 딕셔너리에 존재하지 않으면 KeyError가 발생하므로 이를 방지하기 위해 .get() 메소드를 사용하기도 합니다.

# 키를 사용하여 값에 접근
name = dict_example["name"]  # "Bob"

# .get() 메소드 사용
age = dict_example.get("age")  # 30

# 존재하지 않는 키를 사용할 때 기본값 설정
nickname = dict_example.get("nickname", "Unknown")  # "Unknown"

4. 딕셔너리 조작 방법

4.1 값 추가 및 수정

딕셔너리에 새로운 키-값 쌍을 추가하거나, 이미 존재하는 키의 값을 수정할 수 있습니다.

# 새로운 키-값 쌍 추가
dict_example["gender"] = "Male"

# 기존 키의 값 수정
dict_example["age"] = 31

4.2 값 삭제

딕셔너리에서 특정 키-값 쌍을 삭제하려면 del 키워드를 사용하거나 .pop() 메소드를 사용할 수 있습니다. del은 직접 삭제하고, .pop()은 삭제하면서 값을 반환합니다.

# del 키워드를 사용한 삭제
del dict_example["is_student"]

# .pop() 메소드를 사용한 삭제 (값을 반환함)
age = dict_example.pop("age")  # 31

4.3 모든 항목 삭제 및 딕셔너리 비우기

.clear() 메소드를 사용하면 딕셔너리의 모든 항목을 삭제할 수 있습니다.

# 모든 항목 삭제
dict_example.clear()

5. 딕셔너리의 주요 메소드들

딕셔너리는 데이터를 다루기 위해 다양한 유용한 메소드를 제공합니다.

5.1 .keys(), .values(), .items()

  • .keys(): 딕셔너리의 모든 키를 반환합니다.
  • .values(): 딕셔너리의 모든 값을 반환합니다.
  • .items(): 딕셔너리의 모든 키-값 쌍을 반환합니다.
keys = dict_example.keys()       # dict_keys(['name', 'gender'])
values = dict_example.values()   # dict_values(['Bob', 'Male'])
items = dict_example.items()     # dict_items([('name', 'Bob'), ('gender', 'Male')])

5.2 .update()

.update() 메소드를 사용하면 딕셔너리를 한 번에 업데이트할 수 있습니다. 다른 딕셔너리나 키-값 쌍을 추가할 수 있습니다.

# 딕셔너리 업데이트
dict_example.update({"city": "Chicago", "age": 32})

6. 딕셔너리 활용 예시

6.1 조건문과 함께 사용하기

딕셔너리는 조건문과 함께 유용하게 사용됩니다. 예를 들어, 특정 키가 딕셔너리에 존재하는지 확인하고 그에 따라 처리를 달리할 수 있습니다.

if "age" in dict_example:
    print(f"Age is: {dict_example['age']}")
else:
    print("Age information is not available.")

6.2 반복문과 함께 사용하기

딕셔너리는 반복문을 통해 쉽게 순회할 수 있습니다. .items() 메소드를 사용하여 키와 값을 동시에 접근하는 것이 일반적입니다.

for key, value in dict_example.items():
    print(f"{key}: {value}")

7. 딕셔너리와 관련된 유용한 팁

  • 딕셔너리 컴프리헨션(Dictionary Comprehension): 리스트 컴프리헨션과 유사하게 딕셔너리도 컴프리헨션을 통해 간단히 생성할 수 있습니다.

    # 1부터 5까지의 숫자를 키로, 그 제곱을 값으로 가지는 딕셔너리 생성
    squares = {num: num ** 2 for num in range(1, 6)}
    # 결과: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
  • 안전한 키 접근: 키가 존재하지 않을 가능성이 있다면 .get() 메소드를 사용하여 안전하게 값을 얻을 수 있습니다. 이를 통해 KeyError를 방지할 수 있습니다.

8. 정리

딕셔너리는 Python에서 매우 중요한 자료구조 중 하나로, 키와 값을 사용해 데이터를 유연하게 다룰 수 있습니다. 이 글에서는 딕셔너리의 기본적인 사용법과 조작 방법, 그리고 몇 가지 유용한 메소드와 팁을 소개했습니다. 딕셔너리를 잘 활용하면 복잡한 데이터를 쉽게 관리할 수 있으며, 프로그램의 효율성을 크게 높일 수 있습니다.

728x90
반응형