TableofContents
背景
Methon1:適用于Python3.5及以上版本呢
Method2:自定義函數(shù)
多個(gè)dict進(jìn)行合并
背景
python中有時(shí)候需要將字典進(jìn)行合并,今天我們來(lái)探討下這個(gè)主題。
先來(lái)看看下面的運(yùn)行結(jié)果:
1x={'a':1,'b':2}
2y={'b':4,'c':5}
3z=x.update(y)
4#學(xué)習(xí)python
來(lái)看看z的返回結(jié)果:
print(z)
None
發(fā)現(xiàn)z返回的是None值,并不是我們想要的結(jié)果。
再來(lái)看一下此時(shí)x的返回結(jié)果,發(fā)現(xiàn)x已經(jīng)是合并的結(jié)果。
x
{'a':1,'b':4,'c':5}
那么有沒(méi)有比較簡(jiǎn)單的實(shí)現(xiàn)方法呢。下面我們來(lái)探索一下:
Methon1:適用于Python3.5及以上版本呢
在Python3.5以上版本(含3.5),可以通過(guò)下列方法實(shí)現(xiàn)
z1={**x,**y}
z1
{'a':1,'b':4,'c':5}
Method2:自定義函數(shù)
如果在Python2或Python3.4以及低于3.4的版本,要實(shí)現(xiàn)兩個(gè)dict的合并,該怎樣做呢?
先定義一個(gè)函數(shù),然后用自定義函數(shù)來(lái)運(yùn)行:
1defmerge(x,y):
2z=x.copy()
3z.update(y)
4returnz
5
6z2=merge(x,y)
7z2
8
9{'a':1,'b':4,'c':5}
Method2在Python3.5以上版本也是可以運(yùn)行的。
此外,請(qǐng)注意x中‘b’=2,y中‘b’=4,而運(yùn)算結(jié)果中‘b’=4,是用y中‘b’的值來(lái)對(duì)字典進(jìn)行更新。
多個(gè)dict進(jìn)行合并
如果是多個(gè)dictionary需要進(jìn)行合并呢?
同樣可以通過(guò)自定義的形式來(lái)實(shí)現(xiàn)。
1defmerge_dicts(*dict_args):
2result={}
3foritemindict_args:
4result.update(item)
5returnresult
6
7x1={'a':1,'b':2}
8y1={'b':4,'c':5}
9x2={'d':8,'e':10}
10
11z3=merge_dicts(x1,y1,x2)
12z3
13
14{'a':1,'b':4,'c':5,'d':8,'e':10}
此方法在Python2和Python3下都是可以運(yùn)行的。
以上內(nèi)容為大家介紹了Python中字典合并的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.parentadvocate.org/