Python中字典合并的實現方法

本文首發于我的個人官網: liyangbit.com

背景

Python 中有時候需要將字典進行合并,今天我們來探討下這個主題。

先來看看下面的運行結果

x = {'a':1, 'b':2}
y = {'b':4, 'c':5}
z = x.update(y)

來看看 z 的返回結果:

print(z)
None

發現 z 返回的是None值,并不是我們想要的結果。

再來看一下此時 x 的返回結果,發現 x 已經是合并的結果。

x
{'a': 1, 'b': 4, 'c': 5}

那么有沒有比較簡單的實現方法呢。下面我們來探索一下:

Methon1:適用于Python3.5及以上版本呢

在 Python3.5 以上版本(含3.5),可以通過下列方法實現

z1 = {**x, **y}
z1
{'a': 1, 'b': 4, 'c': 5}

Method2:自定義函數

如果在 Python2 或 Python3.4 以及低于3.4的版本,要實現兩個 dict 的合并,該怎樣做呢?

先定義一個函數,然后用自定義函數來運行

def merge(x,y):
    z = x.copy()
    z.update(y)
    return z
z2 = merge(x,y)
z2
{'a': 1, 'b': 4, 'c': 5}

Method2 在 Python3.5 以上版本也是可以運行的。

此外,請注意 x 中 'b'=2, y 中 'b'=4, 而運算結果中 'b'=4,是用 y 中 'b'的值來對字典進行更新。

多個 dict 進行合并

如果是多個 dictionary 需要進行合并呢?

同樣可以通過自定義的形式來實現。

def merge_dicts(*dict_args):
    result = {}
    for item in dict_args:
        result.update(item)
    return result
x1 = {'a':1, 'b':2}
y1 = {'b':4, 'c':5}
x2 = {'d':8, 'e':10}
z3 = merge_dicts(x1,y1,x2)
z3
{'a': 1, 'b': 4, 'c': 5, 'd': 8, 'e': 10}

此方法在 Python2 和 Python3 下都是可以運行的


對我的文章感興趣的朋友,可以關注我的微信公眾號(ID:PyDataRoad),接收我的更新通知。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • python學習筆記 聲明:學習筆記主要是根據廖雪峰官方網站python學習學習的,另外根據自己平時的積累進行修正...
    renyangfar閱讀 3,081評論 0 10
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 一.服務器基礎配制 1.如果是新的服務器,先安裝常用軟件,配制yum源,關閉防火墻和selinux等,基本操作如下...
    Marvin_F閱讀 2,396評論 0 1
  • 戀愛真是個好東西,可以在那個喜歡的人面前無限作,把別人沒見過的自己通通給他,也不怕他會走,因為你知道,他是愛你的。...
    張小雨yu閱讀 546評論 5 7