TableofContents
背景
Methon1:適用于Python3.5及以上版本呢
Method2:自定義函數(shù)
多個dict進(jìn)行合并
背景
python中有時候需要將字典進(jìn)行合并,今天我們來探討下這個主題。
先來看看下面的運(yùn)行結(jié)果:
1x={'a':1,'b':2}
2y={'b':4,'c':5}
3z=x.update(y)
4#學(xué)習(xí)python
來看看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)行:
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)行的。
此外,請注意x中‘b’=2,y中‘b’=4,而運(yùn)算結(jié)果中‘b’=4,是用y中‘b’的值來對字典進(jìn)行更新。
多個dict進(jìn)行合并
如果是多個dictionary需要進(jìn)行合并呢?
同樣可以通過自定義的形式來實(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)方法,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/