본문 바로가기
컴퓨터/Python

[파이썬] 딕셔너리 사전 합치기 - 여러개 딕셔너리 합치기

by HanJoohyun 2018. 7. 3.
반응형

 

 

 

안녕하세요 한주현입니다.

 

오늘은 python에서 두 개 이상의 딕셔너리 사전 자료형을 하나로 합치는 방법에 대해 알아보겠습니다.







Dictionary 사전 자료형


Dictionary 사전 자료형은 key : value 로 이루어진 자료형으로


{"key" : "value"} 형태로 중괄호로 묶어서 표현합니다.


우리가 많이 사용하는 json 형태와도 동일한 형태이며,


1
2
3
>>> my_dic = {"name" : "한주현""weight" : 62
>>> my_dic["name"]
한주현
cs


이렇게 dictionary 에 key 값을 넣어주면 정해준 value 가 반환됩니다 ㅎㅎ


너무 신기하네요



이러한 dictionary 에 key 와 value 에 들어갈  수 있는 자료형에 대해 알아보면, 


key 는 immutable 한 자료형으로 하나의 dictionary 에서는 하나의 unique 한 key 가 들어갈 수 있습니다


immutable 한 자료형이라고 한다면,


단순히 문자열, 숫자 가 있으며 tuple 도 됩니다 ㅎㅎ;


immutable 한 자료형만 들어가야하는 이유는 dictionary에 key 값으로 접근하는데, key 값이 바뀌어서는 안되기 때문이지요


value 는 key 와는 다르게 값이 겹쳐도 되고 어떤 자료형이던 올 수 있습니다.




Dictionary 간 합쳐서 하나의 dictionary 만들기


이번 포스팅의 메인 주제 입니다 ㅎㅎ

여러개의 dictionary 를 어떻게 합칠 수 있을까요?

단순히 for 문을 사용하여 key 를 보며 하나의 dictionary 로 넣을 수도 있겠지만

훨~ 씬 멋진 방법이 있습니다 ㅎㅎ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ python
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 201612:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help""copyright""credits" or "license" for more information.
>>> my_dic1 = {'a':1'b':2}
>>> my_dic2 = {'c':3'd':4}
>>> {**my_dic1, **my_dic2}
{'a'1'b'2'c'3'd'4}
 
>>> my_dic3 = {'a':3'b':4}
>>> {**my_dic1, **my_dic3} ## 뒤의 넣은 사전 값이 덮어 씌워짐을 알 수 있습니다.
{'a'3'b'4}
>>> {**my_dic3, **my_dic1} ## 뒤의 넣은 사전 값이 덮어 씌워짐을 알 수 있습니다.
{'a'1'b'2}
 
## 세 개 이상의 사전도 합칠 수 있습니다. 마찬가지로 뒤의 넣은 사전 값이 덮어 씌워짐을 알 수 있습니다.
>>> {**xs, **ys, **zs} 
{'a'3'b'4'c'3'd'4}
>>>
 
cs

이 방법은 python 3.5 이상에서 가능한 방법입니다 ..ㅎㅎ
여러분 !! 이제는 python2 를 놓아주고 python3 을 씁시다!! ㅎㅎ

혹시나 아래 처럼 안되시는 분들도 계실겁니다 ㅎㅎ;; python2 인지 버전을 확인해주세요 ㅎㅎ..

1
2
3
4
5
6
7
8
9
10
11
12
13
$ python
Python 2.7.10 (default, Oct  6 201722:29:07
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help""copyright""credits" or "license" for more information.
>>> my_dic1 = {'a':1'b':2}
>>> my_dic2 = {'c':3'd':4}
>>> {**my_dic1,**my_dic2}
  File "<stdin>", line 1
    {**my_dic1,**my_dic2}
      ^
SyntaxError: invalid syntax
>>> 
 
cs


혹시나 python2 에서 너무나도 dictionary 합치기를 하시고 싶으신 분들을 위해 스크립트를 준비했습니다..ㅋㅋ
물론 아래 스크립트는 python3 에서도 됩니다

1
2
3
4
5
6
7
8
9
>>> def merge_dic(x, y):
...     z = x
...     z.update(y)
...     return z
... 
>>> merge_dic(my_dic1, my_dic2)
{'a'1'c'3'b'2'd'4}
>>> 
 
cs




오늘은 파이썬 딕셔너리 사전을 합치는 방법에 대해 알아보았습니다.

여러분께 도움이 되셨으면 좋겠네요 :)

그럼 다음에 또 만나요 ^^


- 참고 URL


기부 버튼을 만들었습니다
여러분들의 작은 정성이 저에게 큰 힘이 됩니다
기부해주신 분들을 기억하며
더 좋은 내용으로 보답해 드리겠습니다 :)

Donate 버튼은 paypal 결제로 paypal 계정이 없으시더라도
카드로도 기부 가능하십니다 :)
Use your credit card or bank account (where available). 옆의 continue 를 누르시면 됩니다

한주현 드림



 



반응형

댓글