Python中字典合并的實(shí)現(xiàn)方法

本文首發(fā)于我的個人官網(wǎng): liyangbit.com

背景

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

先來看看下面的運(yùn)行結(jié)果

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

來看看 z 的返回結(jié)果:

print(z)
None

發(fā)現(xiàn) z 返回的是None值,并不是我們想要的結(jié)果。

再來看一下此時 x 的返回結(jié)果,發(fā)現(xiàn) x 已經(jīng)是合并的結(jié)果。

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

那么有沒有比較簡單的實(shí)現(xiàn)方法呢。下面我們來探索一下:

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

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

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

Method2:自定義函數(shù)

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

先定義一個函數(shù),然后用自定義函數(shù)來運(yùn)行

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 以上版本也是可以運(yùn)行的。

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

多個 dict 進(jìn)行合并

如果是多個 dictionary 需要進(jìn)行合并呢?

同樣可以通過自定義的形式來實(shí)現(xiàn)。

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 下都是可以運(yùn)行的


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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,688評論 4 61
  • python學(xué)習(xí)筆記 聲明:學(xué)習(xí)筆記主要是根據(jù)廖雪峰官方網(wǎng)站python學(xué)習(xí)學(xué)習(xí)的,另外根據(jù)自己平時的積累進(jìn)行修正...
    renyangfar閱讀 3,306評論 0 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • 一.服務(wù)器基礎(chǔ)配制 1.如果是新的服務(wù)器,先安裝常用軟件,配制yum源,關(guān)閉防火墻和selinux等,基本操作如下...
    Marvin_F閱讀 2,540評論 0 1
  • 戀愛真是個好東西,可以在那個喜歡的人面前無限作,把別人沒見過的自己通通給他,也不怕他會走,因?yàn)槟阒溃菒勰愕摹?..
    張小雨yu閱讀 584評論 5 7

友情鏈接更多精彩內(nèi)容