코딩이 즐겁다

[파이썬 입문] 딕셔너리 타입 추가 및 합치는 방법 본문

Python

[파이썬 입문] 딕셔너리 타입 추가 및 합치는 방법

코즐 2025. 1. 31. 12:26
반응형

 

딕셔너리 타입 추가 방법

파이썬(Python)의 기존 딕셔너리 타입에 직접 추가하는 방법과 setdefault 메서드를 사용하여 추가하는 방법입니다.

직접 추가하는 방법

✅ 예제:

# 직접 추가 방법
dict1 = {}

dict1['a'] = 1
dict1['b'] = 2
dict1['c'] = 3

print(dict1) # {'a': 1, 'b': 2, 'c': 3}

 

setdefault() 메서드 사용하여 추가하기

✅ 예제:

# setdefault 메서드 활용
dict1 = {}

dict1.setdefault('a', 1)
dict1.setdefault('b', 2)
dict1.setdefault('c', 3)

print(dict1) # {'a': 1, 'b': 2, 'c': 3}

 

setdefault() 메서드 사용시 주의 사항

중복되는 키의 value 값 변경을 위해 직접 추가 방법과 setdefault 메서드를 같이 쓰고 싶은 경우에는 setdefault를 먼저 사용하고 직접 추가 및 변경 방식을 뒤에 써야 원하는 값을 추출 할 수 있다. setdefault 메서드를 나중에 쓰는 경우에는 값 변경을 할 수 없으므로 주의해야 한다!

!! setdefault 틀린 사용 예제 !!

dict1 = {}

dict1['a'] = 1
dict1['b'] = 2
dict1['c'] = 3
dict1.setdefault('a', 10)
dict1.setdefault('b', 20)
dict1.setdefault('c', 30)

print(dict1) # {'a': 1, 'b': 2, 'c': 3}

!! setdefault 올바른 사용 예제 !!

dict1 = {}

dict1.setdefault('a', 1)
dict1.setdefault('b', 2)
dict1.setdefault('c', 3)
dict1['a'] = 10
dict1['b'] = 20
dict1['c'] = 30

print(dict1) # {'a': 10, 'b': 20, 'c': 30}

 


 

딕셔너리 타입 합치는 방법

파이썬에서 딕셔너리 타입을 합치거나 수정하는 방법은 여러가지가 있습니다.

update() 메서드 사용

update() 메서드는 기존 딕셔너리에 다른 딕셔너리의 키-값 쌍을 추가하거나 덮어씁니다. 원본 딕셔너리가 변경됩니다.

✅ 예제:

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

dict1.update(dict2)  # dict1에 dict2의 내용을 추가
print(dict1)  # {'a': 1, 'b': 3, 'c': 4}

 

| 연산자 사용 (python 3.9 이상)

| 연산자를 사용하면 두 개의 딕셔너리를 병합한 새로운 딕셔너리를 생성합니다. 원본 딕셔너리는 변경되지 않습니다.

✅ 예제:

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

merged_dict = dict1 | dict2
print(merged_dict)  # {'a': 1, 'b': 3, 'c': 4}

# 원본 딕셔너리는 변경되지 않음
print(dict1)  # {'a': 1, 'b': 2}
print(dict2)  # {'b': 3, 'c': 4}

기존 딕셔너리는 그대로 유지되고, 새로운 딕셔너리가 반환됩니다.

 

|= 연산자 사용 (python 3.9 이상)

|= 연산자는 update()와 비슷하게 원본 딕셔너리를 직접 수정합니다. dict1 |= dict2는 dict1.update(dict2)와 동일한 효과를 가집니다.

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

dict1 |= dict2
print(dict1)  # {'a': 1, 'b': 3, 'c': 4}

b의 값이 2 → 3으로 변경되고, 새로운 키 c: 4가 추가되었습니다.

 

딕셔너리 언패킹 (** 연산자)

** 연산자를 사용하면 여러 딕셔너리를 병합한 새로운 딕셔너리를 만들 수 있습니다. Python 3.5 이상에서 사용 가능하며, | 연산자와 비슷하게 새로운 딕셔너리를 반환합니다.

✅ 예제:

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

merged_dict = {**dict1, **dict2}
print(merged_dict)  # {'a': 1, 'b': 3, 'c': 4}

 

반복문을 사용하여 딕셔너리 합치기

for 루프를 사용하면 두 개 이상의 딕셔너리를 수동으로 병합할 수 있습니다. 딕셔너리를 합치는 방식에 대해 세밀한 조정이 가능합니다.

✅ 예제:

dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}

merged_dict = dict1.copy()  # 원본 유지
for key, value in dict2.items():
    merged_dict[key] = value  # 키가 겹치면 덮어쓰기

print(merged_dict)  # {'a': 1, 'b': 3, 'c': 4}

b의 값이 2 → 3으로 변경되고, 새로운 키 c: 4가 추가되었습니다.

 

딕셔너리 여러 개 합치기

여러 개의 딕셔너리를 한 번에 합칠 수도 있습니다.

✅ 예제 (여러 딕셔너리 update() 메서드):

dict1 = {"a": 1}
dict2 = {"b": 2}
dict3 = {"c": 3}
dict4 = {"d": 4}

merged_dict = {}
for d in [dict1, dict2, dict3, dict4]:
    merged_dict.update(d)

print(merged_dict)  # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

 

✅ 예제 (여러 딕셔너리 | 연산자):

dict1 = {"a": 1}
dict2 = {"b": 2}
dict3 = {"c": 3}
dict4 = {"d": 4}

merged_dict = dict1 | dict2 | dict3 | dict4
print(merged_dict)  # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

 

✅ 예제 (여러 딕셔너리 ** 연산자):

dict1 = {"a": 1}
dict2 = {"b": 2}
dict3 = {"c": 3}
dict4 = {"d": 4}

merged_dict = {**dict1, **dict2, **dict3, **dict4}
print(merged_dict)  # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

 

✅ 예제 (다양한 ** 연산자 사용법):

dict1 = {'a':1, 'b':2, 'c':3}
dict2 = {'c':2, 'd':4}
dict3 = {'a':3, 'e':5}

print(dict(dict2, **dict1)) # {'c': 3, 'd': 4, 'a': 1, 'b': 2}

print(dict(dict1, **dict2)) # {'a': 1, 'b': 2, 'c': 2, 'd': 4}

print(dict(dict1, **dict2, **dict3)) # {'a': 3, 'b': 2, 'c': 2, 'd': 4, 'e': 5}

* 가장 앞에 오는 딕셔너리를 기준으로 두번째 딕셔너리를 덮어 쓰고 그 상태에서 세번째 딕셔너리를 덮어쓴다고 생각하면 된다. 순차적으로 덮어쓰는 구조이다.

 


 

코즐

파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다. 

파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.

 


 

 

반응형