본문 바로가기
코딩취미/Python

파이썬 초보자가 알아야 할 딕셔너리 사용법 및 업데이트 요령

by 브링블링 2024. 9. 12.
반응형

파이썬 초보자가 알아야 할 딕셔너리 사용법 및 업데이트 요령

파이썬을 처음 접하는 초보자에게 딕셔너리는 매우 유용한 자료 구조 중 하나입니다. 딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하며, 빠르고 쉽게 데이터를 조회, 추가, 삭제할 수 있습니다. 이번 글에서는 파이썬 초보자를 위한 딕셔너리의 기본적인 사용법과 업데이트 요령을 설명하겠습니다.

1. 파이썬 딕셔너리 기본 사용법

파이썬 딕셔너리는 중괄호 {}를 사용하여 정의되며, 각 키와 값은 콜론 :으로 구분됩니다. 딕셔너리는 키를 사용해 데이터를 빠르게 조회할 수 있고, 각 키는 고유해야 합니다. 아래 코드는 name, age, city라는 키를 가진 딕셔너리를 생성하고, 각 키에 해당하는 값을 저장합니다.

# 딕셔너리 생성
person = {
    "name": "Alice",
    "age": 25,
    "city": "Seoul"
}

# 딕셔너리 출력
print(person)

2. 딕셔너리 값 접근 및 조회

딕셔너리의 특정 키를 사용해 해당 값을 조회할 수 있습니다. 키를 대괄호 [] 안에 넣으면 그에 대응하는 값이 반환됩니다. 아래 코드는 name과 age 키에 저장된 값을 각각 출력합니다.

# 딕셔너리 값 접근
print(person["name"])  # 출력: Alice
print(person["age"])   # 출력: 25

 

키가 존재하지 않는 경우 오류가 발생할 수 있습니다. 안전하게 값을 조회하려면 get() 메서드를 사용하는 것이 좋습니다. get() 메서드는 키가 딕셔너리에 없을 때도 오류를 발생시키지 않고, 기본값을 반환할 수 있어 코드가 더욱 안전해집니다.

get() 메서드는 다음과 같은 형식으로 사용됩니다.

 

  • key: 가져오려는 값의 키.
  • default_value: 키가 존재하지 않을 때 반환할 기본값. 생략하면 None이 기본값으로 반환됩니다.

 

dictionary.get(key, default_value)

 

get() 메서드를 사용할 때, 딕셔너리에서 키가 존재하지 않는 경우 기본적으로 None을 반환하는데, 이를 변경하고 싶으면 두 번째 인자에 원하는 값을 설정하면 됩니다.

# 기본값이 None이 아닌 경우
country = person.get("country", "Not Specified")
print(country)  # 출력: Not Specified
# 딕셔너리 생성
person = {
    "name": "Alice",
    "age": 25
}

# get()을 사용하여 값 가져오기
name = person.get("name")
print(name)  # 출력: Alice

# 존재하지 않는 키를 사용할 때
city = person.get("city")
print(city)  # 출력: None

# 존재하지 않는 키에 대해 기본값을 설정
city_with_default = person.get("city", "Unknown")
print(city_with_default)  # 출력: Unknown

3. 딕셔너리 값 업데이트 요령

딕셔너리의 값을 업데이트하려면 해당 키에 새로운 값을 할당하면 됩니다. 만약 키가 딕셔너리에 존재하지 않는다면, 새로운 키-값 쌍이 추가됩니다.  새로운 값 추가기존 값 업데이트 모두 동일한 방법으로 수행됩니다. 딕셔너리에 없는 키를 할당하면 새로운 키-값 쌍이 추가됩니다. 아래 코드는 age 값을 26으로 업데이트하고, 새로운 occupation 필드를 추가합니다.

# 값 업데이트
person["age"] = 26

# 새로운 키-값 추가
person["occupation"] = "Engineer"

print(person)
반응형

4. 여러 값 업데이트: update() 메서드 사용

딕셔너리에서 여러 값을 한 번에 업데이트하려면 update() 메서드를 사용할 수 있습니다. 이를 통해 여러 키-값 쌍을 한 번에 추가하거나 수정할 수 있습니다. 아래 코드는 age와 city 값을 업데이트하고, 새로운 hobby 필드를 추가합니다.

# 여러 값 업데이트
person.update({
    "age": 27,
    "city": "Busan",
    "hobby": "reading"
})

print(person)

5. 딕셔너리에서 값 삭제하기

딕셔너리에서 특정 키를 삭제할 때는 del 키워드를 사용하거나 pop() 메서드를 이용할 수 있습니다. pop() 메서드는 삭제한 값을 반환해주는 장점이 있습니다.  아래 코드에서 city 항목은 del 키워드를 사용해 삭제하고, occupation은 pop() 메서드로 삭제하면서 그 값을 출력합니다.

# del 키워드를 사용한 삭제
del person["city"]

# pop() 메서드를 사용한 삭제
removed_value = person.pop("occupation")

print(person)
print("Removed occupation:", removed_value)

 

딕셔너리에서 키가 없는 항목을 삭제하려 하면 오류가 발생할 수 있으므로, 삭제 전에 해당 키가 존재하는지 확인하는 것이 좋습니다.

# 키가 존재하는지 확인 후 삭제
if "hobby" in person:
    del person["hobby"]

6. 딕셔너리 순회하기

딕셔너리의 모든 키와 값을 순회하고 싶을 때는 for 반복문을 사용하여 쉽게 데이터를 출력하거나 처리할 수 있습니다. 아래에 있는 코드는 items() 메서드를 사용하여 딕셔너리의 키와 값을 반복하면서 각각 출력합니다.

# 딕셔너리의 키와 값 순회
for key, value in person.items():
    print(f"{key}: {value}")

 

keys() 메서드로 키만, values() 메서드로 값만 순회할 수도 있습니다.

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

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

7. 딕셔너리 사용 예시: 재고 관리 시스템

앞에서 정리한 내용을 바탕으로 간단한 재고 관리 시스템을 구성하면 아래와 같습니다.

# 제품 재고 관리 시스템
inventory = {}

# 제품 추가 함수
def add_product(product, quantity):
    if product in inventory:
        inventory[product] += quantity
    else:
        inventory[product] = quantity

# 제품 업데이트 함수
def update_product(product, quantity):
    if product in inventory:
        inventory[product] = quantity
    else:
        print(f"{product} is not in the inventory.")

# 제품 삭제 함수
def remove_product(product):
    if product in inventory:
        del inventory[product]
    else:
        print(f"{product} is not in the inventory.")

# 제품 추가
add_product("Apple", 50)
add_product("Banana", 30)

# 제품 수량 업데이트
update_product("Apple", 70)

# 제품 출력
print(inventory)

# 제품 삭제
remove_product("Banana")
print(inventory)
반응형