當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python collections.ChainMap用法及代碼示例


用法:

class collections.ChainMap(*maps)

ChainMap 將多個 dicts 或其他映射組合在一起以創建單個可更新的視圖。如果未指定maps,則提供一個空字典,以便新鏈始終具有至少一個映射。

底層映射存儲在列表中。該列表是公開的,可以使用maps 屬性訪問或更新。沒有其他狀態。

查找連續搜索底層映射,直到找到一個鍵。相反,寫入、更新和刪除僅對第一個映射進行操作。

ChainMap 通過引用合並底層映射。因此,如果基礎映射之一得到更新,這些更改將反映在 ChainMap 中。

支持所有常用的字典方法。此外,還有一個maps 屬性、一個用於創建新子上下文的方法以及一個用於訪問除第一個映射之外的所有內容的屬性:

請注意,ChainMap() 的迭代順序是通過掃描從最後到第一個的映射來確定的:

>>> baseline = {'music': 'bach', 'art': 'rembrandt'}
>>> adjustments = {'art': 'van gogh', 'opera': 'carmen'}
>>> list(ChainMap(adjustments, baseline))
['music', 'art', 'opera']

這給出了與從最後一個映射開始的一係列 dict.update() 調用相同的順序:

>>> combined = baseline.copy()
>>> combined.update(adjustments)
>>> list(combined)
['music', 'art', 'opera']

在 3.9 版中更改:增加了對||=運算符,在PEP 584.

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 collections.ChainMap。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。