프로그래밍/Python

파이썬 딕셔너리 완전 정복: 키-값 쌍의 마법과 활용법

shimdh 2025. 2. 24. 16:37
728x90

파이썬 딕셔너리 완전 정복: 키-값 쌍의 마법과 활용법

파이썬 프로그래밍에서 딕셔너리는 데이터를 효율적으로 관리하고 접근하는 데 필수적인 자료구조입니다. 딕셔너리는 키(key)와 값(value)의 쌍으로 데이터를 저장하는 방식으로, 마치 사전처럼 특정 키를 통해 원하는 값에 빠르게 접근할 수 있도록 설계되었습니다. 이번 블로그 포스트에서는 파이썬 딕셔너리의 개념, 특징, 활용법, 그리고 추가적인 팁까지 자세하게 알아보겠습니다.

딕셔너리란 무엇일까요?

1. 키-값 쌍의 구조

딕셔너리는 키와 값으로 이루어진 쌍을 저장하는 가변적인(mutable) 자료형입니다. '가변적'이라는 의미는 딕셔너리가 생성된 후에도 내용을 수정, 추가, 삭제할 수 있다는 뜻입니다. 각 키는 고유해야 하며, 이를 통해 해당 값에 빠르게 접근할 수 있습니다. 키는 보통 문자열(string)이나 숫자(integer, float)와 같은 불변(immutable) 자료형을 사용합니다. 값은 어떤 자료형이든 가능합니다.

2. 딕셔너리의 특징

  • 키의 유일성: 딕셔너리에서 키는 값을 식별하는 중요한 역할을 합니다. 따라서 키는 중복될 수 없습니다. 만약 동일한 키로 다른 값을 저장하려고 하면, 기존 값은 새로운 값으로 덮어씌워집니다.
  • 순서 유지: 파이썬 3.7 버전부터는 딕셔너리의 요소들이 삽입된 순서대로 유지됩니다. 이는 이전 버전에 비해 큰 변화로, 순서가 중요한 데이터 처리에 딕셔너리를 더욱 유용하게 활용할 수 있게 되었습니다.
  • 가변성: 딕셔너리는 생성 후에도 자유롭게 수정할 수 있습니다. 새로운 키-값 쌍을 추가하거나, 기존 키에 대한 값을 변경하거나, 특정 키-값 쌍을 삭제하는 것이 가능합니다.

딕셔너리 활용법 마스터하기

1. 딕셔너리 생성

딕셔너리는 중괄호 {}를 사용하여 정의하며, 키와 값은 콜론 :으로 구분합니다.

my_dict = {"name": "Alice", "age": 30, "city": "New York"}

2. 값 접근 및 수정

키를 사용하여 딕셔너리의 값에 접근할 수 있습니다.

print(my_dict["name"])  # 출력: Alice

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

3. 새로운 키-값 쌍 추가 및 삭제

my_dict["occupation"] = "Software Engineer"  # 새로운 키-값 쌍 추가

del my_dict["city"]  # 키-값 쌍 삭제

4. 딕셔너리 메소드 활용

  • keys(): 딕셔너리의 모든 키를 반환합니다.
  • values(): 딕셔너리의 모든 값을 반환합니다.
  • items(): 딕셔너리의 모든 키-값 쌍을 튜플 형태로 반환합니다.
  • get(key, default): 키에 해당하는 값을 반환하고, 키가 존재하지 않으면 default 값을 반환합니다.
print(my_dict.keys())
print(my_dict.values())
print(my_dict.items())

print(my_dict.get("country", "Unknown"))  # 키가 없으면 "Unknown" 반환

딕셔너리 활용 예제

1. 학생 정보 관리 프로그램

students = {}

while True:
    name = input("학생 이름 (종료하려면 'q' 입력): ")
    if name == 'q':
        break
    age = int(input("학생 나이: "))
    major = input("학생 전공: ")
    students[name] = {"age": age, "major": major}

for name, info in students.items():
    print(f"이름: {name}, 나이: {info['age']}, 전공: {info['major']}")

2. 단어 빈도수 계산 프로그램

text = "This is a sample text. This text contains some sample words."
words = text.lower().split()

word_counts = {}
for word in words:
    word_counts[word] = word_counts.get(word, 0) + 1

for word, count in word_counts.items():
    print(f"{word}: {count}")

파이썬 딕셔너리, 더 깊이 알아보기

1. 딕셔너리 컴프리헨션

딕셔너리 컴프리헨션은 간결한 문법으로 딕셔너리를 생성하는 방법입니다.

squares = {x: x*x for x in range(10)}  # 0부터 9까지의 제곱수를 담은 딕셔너리 생성

2. collections 모듈의 OrderedDict

파이썬 3.7 이전 버전에서 딕셔너리의 순서를 유지해야 할 경우, collections 모듈의 OrderedDict를 사용했습니다. 하지만 3.7 이후로는 딕셔너리 자체에서 순서가 보장되므로, OrderedDict의 필요성이 줄었습니다.

결론

파이썬 딕셔너리는 데이터를 효율적으로 관리하고 접근하는 데 매우 강력한 도구입니다. 키-값 쌍의 구조를 이해하고 다양한 활용법을 익히면 파이썬 프로그래밍 실력을 한 단계 업그레이드할 수 있습니다.

728x90