Python 사전(딕셔너리) 요소 추가 완전 가이드 | 기본부터 응용까지 상세 해설

1. Python의 사전(딕셔너리)란

Python의 사전(딕셔너리는) 키와 값의 쌍을 저장하는 데이터 타입으로, 매우 효율적인 데이터 관리가 가능합니다. 리스트와 튜플과 달리 사전은 순서를 유지하지 않지만, 키를 사용해 빠르게 값을 가져올 수 있다는 특징이 있습니다. Python 프로그램에서 자주 사용되는 데이터 타입 중 하나입니다.

사전의 기본적인 특징

  • 키와 값의 쌍: 사전은 고유한 키와 그에 대응하는 값으로 구성됩니다. 키는 변경할 수 없는 타입(문자열이나 숫자 등)이어야 하며, 값에는 모든 타입을 사용할 수 있습니다.
  • 순서가 없음: Python 사전에는 저장 순서가 없기 때문에, 키를 지정해 값을 검색합니다.
  • 값의 참조: 키를 지정해 빠르게 값을 참조할 수 있습니다.

사전 생성 예시

다음 예시에서는 사전을 생성하고, 키를 사용해 값을 추출하는 기본적인 작업을 보여줍니다.
사전 생성

my_dict = {
"apple": "사과",
"banana": "바나나",
"cherry": "체리"
}

값 가져오기

print(my_dict["apple"]) # 출력: 사과

2. Python의 사전에 요소를 추가하는 기본 방법

Python에서는 기존 사전에 요소를 추가할 때 간단한 대입문을 사용합니다. 이 방법은 사전을 처음 다루는 사람에게도 직관적이고 이해하기 쉽습니다.

기본적인 요소 추가 방법

사전에 새로운 요소를 추가하기 위한 형식은 다음과 같습니다.
새 요소 추가

my_dict["orange"] = "오렌지"
print(my_dict)

출력: {'apple': '사과', 'banana': '바나나', 'cherry': '체리', 'orange': '오렌지'}
이 방법에서는 지정한 키가 존재하지 않을 경우 새로운 요소가 추가됩니다. 다만, 기존 키를 사용할 경우 그 값이 덮어쓰기된다는 점에 주의가 필요합니다.

같은 키를 사용했을 때의 덮어쓰기

사전에 기존 키로 새로운 값을 추가하면 그 값이 덮어쓰기됩니다.
my_dict["banana"] = "바나나 주스"
print(my_dict)

출력: {'apple': '사과', 'banana': '바나나 주스', 'cherry': '체리', 'orange': '오렌지'}
이와 같이, 이미 존재하는 키"banana"의 값이 변경되어 원래 값이 덮어쓰기됩니다.
年収訴求

3. 덮어쓰기를 피하고 사전에 요소를 추가하는 방법

덮어쓰기를 피하고 싶다면 setdefault() 메서드를 사용합니다. 이 메서드는 지정된 키가 사전에 존재하지 않을 때만 새로운 요소를 추가하므로, 실수로 값을 덮어쓸 걱정이 없습니다.

setdefault() 사용 예시

다음 코드는 setdefault()를 사용하여 기존 요소를 덮어쓰지 않고 새로운 요소를 추가하는 방법을 보여줍니다.
my_dict.setdefault("banana", "바나나 스무디")
my_dict.setdefault("grape", "포도")
print(my_dict)

출력: {'apple': '사과', 'banana': '바나나 주스', 'cherry': '체리', 'orange': '오렌지', 'grape': '포도'}
이 예에서는 "banana" 키가 이미 존재하므로 값이 덮어쓰여지지 않고, 새로운 키 "grape"만 추가되었습니다.

4. 여러 개의 딕셔너리를 결합하여 요소를 추가하는 방법

여러 개의 딕셔너리를 하나로 결합할 경우, update() 메서드를 사용할 수 있습니다. 이를 통해 다른 딕셔너리의 요소를 한 번에 추가할 수 있어, 효율적으로 데이터를 관리할 수 있습니다.

update() 메서드 사용 예시

다음은 update() 메서드를 사용하여 두 개의 딕셔너리를 결합하는 예시입니다.
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2)
print(dict1)

출력: {'a': 1, 'b': 3, 'c': 4}
이 예에서는 "b"라는 키가 두 딕셔너리 모두에 존재하기 때문에, dict1의 값이 dict2의 값으로 덮어쓰기되었습니다. 새로운 키 "c"dict1에 추가됩니다.

덮어쓰기를 피하는 방법

덮어쓰기를 피하면서 딕셔너리를 결합하고 싶을 경우, setdefault()와 for 루프를 결합할 수 있습니다.
for key, value in dict2.items():
dict1.setdefault(key, value)
print(dict1)

출력: {'a': 1, 'b': 2, 'c': 4}

5. 응용 기술: 조건부로 요소를 추가하기

실제 개발에서는, 조건에 따라 사전에 요소를 추가하는 경우도 있습니다. 예를 들어, 특정 조건에 일치하는 요소만 사전에 추가하는 경우, if 문과 for 루프를 사용하여 동적으로 요소를 추가할 수 있습니다.

조건부로 요소를 추가하는 예

다음 코드는, 가격이 특정 기준을 충족하는 과일만 사전에 추가하는 예입니다.
items = [("apple", 100), ("banana", 150), ("cherry", 200)]
fruit_dict = {}

for fruit, price in items:
if price > 120:
fruit_dict[fruit] = price

print(fruit_dict)

출력: {'banana': 150, 'cherry': 200}
이 예에서는, 가격이 120을 초과하는 과일만 사전에 추가됩니다. 조건부로 사전에 요소를 추가하는 경우, 이와 같이 유연한 처리가 가능합니다.

6. 사전 조작 시 오류 처리

사전을 조작할 때 발생하기 쉬운 오류로는 KeyError가 있습니다. 지정한 키가 사전 내에 존재하지 않을 경우, 이 오류가 발생합니다. 오류를 피하기 위해서는 키의 존재를 확인하거나 get() 메서드를 사용하는 것이 일반적입니다.

KeyError를 피하는 방법

다음 예는 get() 메서드를 사용하여 오류를 회피하는 방법입니다.
value = my_dict.get("pear", "키가 존재하지 않습니다")
print(value)

출력: 키가 존재하지 않습니다
이와 같이, 존재하지 않는 키에 접근해도 오류가 발생하지 않고, 기본값을 반환할 수 있습니다.

7. 요약: 사전 추가 베스트 프랙티스

Python 사전에 요소를 추가하는 방법은 간단한 추가부터 복잡한 결합 및 조건부 추가까지 다양합니다. 아래 포인트를 숙지하면 사전 작업을 보다 효과적으로 수행할 수 있습니다.
  • 기본적인 추가: [키] = 값 을 사용해 간단히 추가.
  • 덮어쓰기를 피하기: setdefault() 을 활용해 의도치 않은 덮어쓰기를 방지.
  • 여러 사전을 결합: update() 로 효율적으로 요소를 추가.
  • 오류 처리: KeyError 를 피하기 위해 get() 이나 존재 확인을 수행.
이러한 방법을 상황에 맞게 사용하면 Python 사전 작업을 더욱 원활하게 할 수 있습니다.
年収訴求