python 高階教程 多個字典(對映)的合併

2021-09-06 10:19:53 字數 1697 閱讀 1108

0.摘要

當我們處理多個字典(或稱為對映,因為字典是python中唯一的對映結構),可以通過將多個字典合併為乙個字典的方式實現批量處理。

1.chainmap類

a =                       

b =

from collections import chainmap

c = chainmap(a,b)

print(c['x']) # outputs 1 (from a)

print(c['y']) # outputs 2 (from b)

print(c['z']) # outputs 3 (from a)

print('len(c):', len(c)) #len(c): 3

print('c.keys():', list(c.keys())) #c.keys(): ['x', 'y', 'z']

print('c.values():', list(c.values())) #c.values(): [1, 2, 3]

collections.chainmap類能夠將多個對映在邏輯表現上組合為乙個單獨的對映,但只是維護了乙個記錄低層對映關係的列表,這多個對映並不會真正合併。

對於重複的鍵採用第乙個對映中的值,但是修改對映的操作也只會作用在第乙個對映上。

c['z'] = 10                                    

c['w'] = 40

del c['x']

print("a:", a) #a:

另外,chainmap還而已建立子類:

values = chainmap()

values['x'] = 1

print(values) #result:chainmap()

values = values.new_child()

values['x'] = 2

print(values) #result:chainmap(, )

values = values.new_child()

values['x'] = 3

print(values) #result:chainmap(, , )

print(values['x']) #3

values = values.parents

print(values['x']) #2

values = values.parents

print(values['x']) #1

2.優勢

我們知道,字典可以通過.update()方法進行合併,但這會構建出乙個新的字典。並且,原始字典的資料更新夠,新字典中的資料不會隨之更新。

Python 多個字典組合成單個字典

多個字典或對映,希望在邏輯上將它們組合成單個對映以執行某些操作,例如查詢值或檢查鍵是否存在。假如現在有兩個字典物件a,b。a b 假如現在要檢查某一鍵是否在其中乙個字典物件中存在。首先檢查a,若a中不存在,則檢查b。可以使用collections模組的chainmap類,如下 from collec...

Python 多個字典組合成單個字典

多個字典或對映,希望在邏輯上將它們組合成單個對映以執行某些操作,例如查詢值或檢查鍵是否存在。假如現在有兩個字典物件a,b。a b 假如現在要檢查某一鍵是否在其中乙個字典物件中存在。首先檢查a,若a中不存在,則檢查b。可以使用collections模組的chainmap類,如下 from collec...

python之合併多個字典或對映

現在有多個字典或者對映,你想將它們從邏輯上合併為乙個單一的對映後執行某些操作,比如查詢值或者檢查某些鍵是否存在。假如你有如下兩個字典 a b 不改變原字典,新建c合併後的字典 c dict a c.update b print c 更新原字典,更新的內容會覆蓋老的內容 a.update b prin...