中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python cookbook中如何將多個映射合并為單個映射

發布時間:2021-08-12 12:47:12 來源:億速云 閱讀:110 作者:小新 欄目:開發技術

這篇文章主要介紹Python cookbook中如何將多個映射合并為單個映射,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

問題:在邏輯上將多個字典或映射合并為一個單獨的映射結構,以此執行某些特定的操作,比如查找值或者檢查鍵是否存在

解決方案:利用collections模塊中的ChainMap

ChainMap可接受多個映射然后在邏輯上使它們表現為一個單獨的映射結構。這些映射在字面上并不會合并在一起。相反,ChainMap只是簡單地維護一個記錄底層映射關系的列表,然后重定義常見的字典操作來掃描這個列表。

# example.py
#
# Example of combining dicts into a chainmap
a = {'x': 1, 'z': 3 }
b = {'y': 2, 'z': 4 }
# (a) Simple example of combining
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)
# Output some common values
print('len(c):', len(c))
print('c.keys():', list(c.keys()))
print('c.values():', list(c.values()))
# Modify some values
c['z'] = 10
c['w'] = 40
print("a:", a)
del c['x']
print("a:", a)
# Example of stacking mappings (like scopes)
values = ChainMap()
values['x'] = 1
# Add a new mapping
values = values.new_child()
values['x'] = 2
# Add a new mapping
values = values.new_child()
values['x'] = 3
print(values)
print(values['x'])
# Discard last mapping
values = values.parents
print(values)
print(values['x'])
# Discard last mapping
values = values.parents
print(values)
print(values['x'])
>>> ================================ RESTART ================================
>>>
1
2
3
len(c): 3
c.keys(): ['y', 'x', 'z']
c.values(): [2, 1, 3]
a: {'x': 1, 'z': 10, 'w': 40}
a: {'z': 10, 'w': 40}
ChainMap({'x': 3}, {'x': 2}, {'x': 1})
3
ChainMap({'x': 2}, {'x': 1})
2
ChainMap({'x': 1})
1
>>>

另外ChainMap操作的是原始字典,可以避免一些令人不悅的行為,例如其中任何一個原始字典的修改無法反應到合并后的字典中。

>>> a={'x':1,'z':3}
>>> b={'y':2,'z':4}
>>> merged=ChainMap(a,b)
>>> merged
ChainMap({'x': 1, 'z': 3}, {'y': 2, 'z': 4})
>>> merged['x']
1
>>> a['x']=55
>>> merged['x']
55
>>> merged
ChainMap({'x': 55, 'z': 3}, {'y': 2, 'z': 4})
>>>

以上是“Python cookbook中如何將多個映射合并為單個映射”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田阳县| 铁力市| 连江县| 南郑县| 西华县| 商水县| 阳西县| 武平县| 花莲市| 凯里市| 自贡市| 德州市| 军事| 澄江县| 济宁市| 神农架林区| 阿坝县| 广丰县| 达日县| 阿城市| 丹巴县| 千阳县| 罗城| 青浦区| 枣阳市| 岳西县| 阳春市| 尖扎县| 买车| 东丰县| 宁津县| 辰溪县| 金沙县| 辛集市| 合作市| 桃园县| 宜君县| 青川县| 增城市| 林口县| 乌审旗|