Python中合并兩個字典的多種方法小結(jié)
更新時間:2025年08月18日 09:48:47 作者:detayun
Python合并字典有多種方法:**運算符(3.5+)創(chuàng)建新字典,|運算符(3.9+)語法簡潔;update()修改原字典;處理嵌套需淺層合并或用deepmerge庫;自定義邏輯可手動實現(xiàn),根據(jù)需求選擇合適方式,需要的朋友可以參考下
在 Python 中合并字典有多種方法,以下是不同場景下的解決方案:
方法 1:使用 ** 解包運算符(Python 3.5+)
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = {**dict1, **dict2}
print(merged_dict) # 輸出: {'a': 1, 'b': 3, 'c': 4}
- 特點:創(chuàng)建新字典,不修改原字典
- 注意:重復鍵以最后一個字典的值為準
方法 2:使用 update() 方法
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2) # 直接修改 dict1
print(dict1) # 輸出: {'a': 1, 'b': 3, 'c': 4}
- 特點:原地修改第一個字典
- 適用場景:不需要保留原字典時
方法 3:使用 | 合并運算符(Python 3.9+)
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged_dict = dict1 | dict2
print(merged_dict) # 輸出: {'a': 1, 'b': 3, 'c': 4}
- 特點:語法簡潔,類似
**運算符 - 注意:需要 Python 3.9+ 版本
方法 4:處理嵌套字典合并
from collections import ChainMap
dict1 = {"a": {"x": 1}, "b": 2}
dict2 = {"a": {"y": 3}, "c": 4}
merged = ChainMap(dict2, dict1) # 優(yōu)先使用 dict2 的值
print(merged["a"]) # 輸出: {'y': 3}(注意:不會深度合并嵌套字典)
- 特點:適合淺層合并,不遞歸處理嵌套結(jié)構(gòu)
- 進階方案:使用
deepmerge庫實現(xiàn)深度合并
方法 5:自定義合并邏輯(如值相加)
from collections import defaultdict
dict1 = {"a": 10, "b": 20}
dict2 = {"a": 5, "c": 30}
merged = defaultdict(int)
for d in (dict1, dict2):
for key, value in d.items():
merged[key] += value
print(dict(merged)) # 輸出: {'a': 15, 'b': 20, 'c': 30}
- 適用場景:需要自定義合并規(guī)則(如數(shù)值相加、列表拼接等)
總結(jié)建議
- 簡單合并:優(yōu)先使用
**或|運算符 - 保留原字典:使用
{**d1, **d2}創(chuàng)建新字典 - 深度合并:使用第三方庫(如
deepmerge) - 自定義邏輯:手動遍歷字典實現(xiàn)特定需求
根據(jù)具體需求選擇最適合的方法即可!
到此這篇關(guān)于Python中合并兩個字典的多種方法小結(jié)的文章就介紹到這了,更多相關(guān)Python合并兩個字典內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用python-docx處理word的方法示例
本文介紹了python-docx模塊,用于自動化操作Word文檔,包括創(chuàng)建、寫入和讀取Word文檔等方法,具有一定的參考價值,感興趣的可以了解一下2025-01-01
Python標準庫內(nèi)置函數(shù)complex介紹
這篇文章主要介紹了Python標準庫內(nèi)置函數(shù)complex介紹,本文先是講解了complex的作用和使用注意,然后給出了使用示例,需要的朋友可以參考下2014-11-11
Python的Django框架中的數(shù)據(jù)過濾功能
這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)過濾功能,為更新數(shù)據(jù)庫數(shù)據(jù)時的數(shù)據(jù)查找提供了方便,需要的朋友可以參考下2015-07-07
在Python的Django框架中獲取單個對象數(shù)據(jù)的簡單方法
這篇文章主要介紹了在Python的Django框架中獲取單個對象數(shù)據(jù)的簡單方法,Django為數(shù)據(jù)的操作提供了諸多方便的功能,需要的朋友可以參考下2015-07-07
Python Numpy中數(shù)據(jù)的常用保存與讀取方法
這篇文章主要介紹了Python Numpy中數(shù)據(jù)的常用保存與讀取方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

