目次
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()
이나 존재 확인을 수행.