這篇文章將為大家詳細(xì)講解有關(guān)python合并兩個字典的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
道外網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。Python中將兩個字典進(jìn)行合并操作,是一個比較常見的問題。本文將介紹幾種實現(xiàn)兩個字典合并的方案,并對其進(jìn)行比較。
對于這個問題,比較直觀的想法是將兩個字典做相加操作,賦值給結(jié)果字典,其代碼為:
python兩個字典合并(方法1)
dictMerged1 = dict( dict1.items() + dict2.items() )
然而,該方法合并時所用時間較長,效率更高的代碼為:
python兩個字典合并(方法2)
dictMerged2 = dict( dict1, **dict2 )
這種方法使用的是dict()工廠方法(Python2.2以上版本)。如果輸入?yún)?shù)是另一個字典(此處為dict1),則調(diào)用該工廠方法時會從dict1中復(fù)制內(nèi)容生成新的字典。該工廠方法從Python2.3版本開始,允許接受字典或關(guān)鍵字參數(shù)字典進(jìn)行調(diào)用。
但應(yīng)當(dāng)注意,對于這種調(diào)用方式,dict()最多只接受一個參數(shù)(或者說是一組name=value的可變長參數(shù)),而不會再接受另一個字典。因此直觀上的簡單使用dict1與dict2兩個參數(shù)的方法會提示如下錯誤:
>>> dictMerged = dict( dict1, dict2 ) Traceback (most recent call last): File "", line 1, in TypeError: dict expected at most 1 arguments, got 2
這也就是我們看到上面的方法2中使用的是**dict2的原因。熟悉C的朋友應(yīng)當(dāng)注意,在這里*的意思并不代表指針,這是Python中可變長函數(shù)參數(shù)的寫法(關(guān)于可變長函數(shù)參數(shù)的相關(guān)知識見本文)。在這里,**的意思是基于字典的可變長函數(shù)參數(shù)。
方法2執(zhí)行的是如同下面方法3中的代碼,即先將dict1拷貝給dictMerged,在執(zhí)行update()操作:
python兩個字典合并(方法3)
dictMerged3 = dict1.copy() dictMerged3.update( dict2 )
對于第一步的復(fù)制操作而言,這種使用內(nèi)建方法copy()的復(fù)制方式,和方法2中的復(fù)制結(jié)果是一樣的,但根據(jù)《Core Python Programming (2nd edition)》一書中7.3.2節(jié)所述,從已存在字典中生成新字典的方式dictNew = dict( dictOld )較內(nèi)建方法dictNew = dictOld.copy()會慢一些,因此書中推薦使用copy()方法。
因此,從這幾種方式看來,方法3的效率最高,并且代碼也比較易讀。
關(guān)于python合并兩個字典的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。