91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

剑河县| 阿勒泰市| 囊谦县| 北碚区| 胶南市| 嘉峪关市| 麻阳| 伊宁县| 榆林市| 日喀则市| 旬阳县| 越西县| 新宁县| 兖州市| 奉节县| 布尔津县| 石狮市| 罗田县| 贺兰县| 平遥县| 公主岭市| 嘉鱼县| 衡阳县| 涟源市| 安多县| 南江县| 毕节市| 博白县| 沁阳市| 桓台县| 景谷| 凤庆县| 中牟县| 济南市| 五寨县| 黔西| 华容县| 枣强县| 涞源县| 灵武市| 磐安县|