본문 바로가기

언어/Python

[ 파이썬 / Python ] 딕셔너리 사용하기

반응형

Python의 딕셔너리(Dictionary)는 키-값 쌍을 저장하는 데이터 구조입니다. 키는 고유해야 하며, 값을 통해 데이터를 빠르게 검색할 수 있습니다. 딕셔너리는 중괄호 {}를 사용하여 정의하며, 각 키-값 쌍은 콜론 :으로 구분됩니다.

1. 딕셔너리의 특징

  1. 키-값 쌍: 딕셔너리는 키와 값의 쌍으로 데이터를 저장합니다.
  2. 변경 가능: 딕셔너리는 변경 가능한(mutable) 자료형입니다.
  3. 순서 없음: Python 3.7부터는 딕셔너리가 삽입 순서를 유지하지만, 그 이전 버전에서는 순서가 보장되지 않았습니다.
  4. 키는 고유: 딕셔너리의 키는 고유해야 하며, 불변(immutable) 자료형만 사용할 수 있습니다. 예를 들어, 문자열, 숫자, 튜플 등이 키로 사용될 수 있습니다.

2. 딕셔너리 생성

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

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

3. 딕셔너리 접근

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

# 키를 사용하여 값에 접근
print(person["name"])  # 출력: Alice
print(person["age"])   # 출력: 30

4. 딕셔너리 수정

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

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

# 새로운 키-값 쌍 추가
person["email"] = "alice@example.com"

print(person)
# 출력: {'name': 'Alice', 'age': 31, 'city': 'New York', 'email': 'alice@example.com'}

5. 딕셔너리 삭제

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

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

# pop() 메서드 사용
city = person.pop("city")

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

print(person)  # 출력: {}
print(city)    # 출력: New York

6. 딕셔너리 순회

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

# 키 순회
for key in person:
    print(key)

# 값 순회
for value in person.values():
    print(value)

# 키-값 쌍 순회
for key, value in person.items():
    print(key, value)

7. 딕셔너리 메서드

keys(), values(), items()

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

# 모든 키 반환
print(person.keys())  # 출력: dict_keys(['name', 'age', 'city'])

# 모든 값 반환
print(person.values())  # 출력: dict_values(['Alice', 30, 'New York'])

# 모든 키-값 쌍 반환
print(person.items())  # 출력: dict_items([('name', 'Alice'), ('age', 30), ('city', 'New York')])

get()

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

# 키가 존재하면 값을 반환, 그렇지 않으면 기본값 반환
print(person.get("name"))  # 출력: Alice
print(person.get("email", "Not Provided"))  # 출력: Not Provided

update()

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

# 다른 딕셔너리로 업데이트
person.update({"age": 31, "email": "alice@example.com"})

print(person)
# 출력: {'name': 'Alice', 'age': 31, 'city': 'New York', 'email': 'alice@example.com'}

8. 딕셔너리 컴프리헨션

딕셔너리 컴프리헨션을 사용하면 간결하고 효율적으로 딕셔너리를 생성할 수 있습니다.

# 키가 1부터 5까지이고 값이 키의 제곱인 딕셔너리 생성
squares = {x: x**2 for x in range(1, 6)}
print(squares)
# 출력: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

9. 딕셔너리의 유용한 메서드 정리

  1. keys(): 딕셔너리의 모든 키를 반환합니다.
  2. values(): 딕셔너리의 모든 값을 반환합니다.
  3. items(): 딕셔너리의 모든 키-값 쌍을 반환합니다.
  4. get(key, default): 키가 존재하면 값을 반환하고, 그렇지 않으면 기본값을 반환합니다.
  5. pop(key, default): 키가 존재하면 키-값 쌍을 제거하고 값을 반환하며, 그렇지 않으면 기본값을 반환합니다.
  6. update(other_dict): 다른 딕셔너리의 키-값 쌍을 추가하거나 기존 값을 업데이트합니다.
  7. clear(): 딕셔너리의 모든 키-값 쌍을 제거합니다.

이와 같이 Python의 딕셔너리는 강력하고 유연한 데이터 구조로, 키-값 쌍을 사용하여 데이터를 저장하고 빠르게 검색할 수 있습니다. 다양한 내장 메서드를 통해 효율적으로 딕셔너리를 조작할 수 있습니다.

반응형