python ChainMap管理用法實例講解
說明
1、ChainMap的主要用例是提供一種有效的方法來管理多個范圍或上下文,并處理重復鍵的訪問優(yōu)先級。
2、當有多個存儲重復鍵的字典訪問它們的順序時,這個功能非常有用。
在ChainMap文檔中找到一個經(jīng)典的例子,它模擬Python如何分析不同命名空間中的變量名稱。
當Python搜索名稱時,它會依次搜索當?shù)?、全局和內置的功能域,直到找到目標名稱。Python作用域是將名稱映射到對象的字典。
為了模擬Python的內部搜索鏈,可以使用鏈映射。
實例
>>> import builtins >>> # Shadow input with a global name >>> input = 42 >>> pylookup = ChainMap(locals(), globals(), vars(builtins)) >>> # Retrieve input from the global namespace >>> pylookup["input"] 42 >>> # Remove input from the global namespace >>> del globals()["input"] >>> # Retrieve input from the builtins namespace >>> pylookup["input"] <built-in function input>
知識點擴展:
ChainMap類管理的是一個字典序列,并按其出現(xiàn)的順序搜索以查找與鍵關聯(lián)的值。ChainMap提供了一個很好的“上下文”容器,因此可以把它看成一個棧,棧增長時發(fā)生變更,棧收縮時這些變更被丟棄。
下面,我們來看看其基本的使用規(guī)則:
import collections a = {"a": "A", "c": "c", } b = {"b": "B", "c": "D", } col = collections.ChainMap(a, b) # 和普通字典一樣訪問 print(col["a"]) print(list(col.keys()), list(col.values())) for key, value in col.items(): print(key, value)
可以看到,在相同的key值情況下,只有子映射a的值。這也就是說明ChainMap是按子映射傳遞到構造函數(shù)的順序來搜索這些子映射。
以上就是python ChainMap管理用法實例講解的詳細內容,更多關于python ChainMap的管理用法的資料請關注腳本之家其它相關文章!
相關文章
使用Python和大模型進行數(shù)據(jù)分析和文本生成
Python語言以其簡潔和強大的特性,成為了數(shù)據(jù)科學、機器學習和人工智能開發(fā)的首選語言之一,在這篇文章中,我將介紹如何用Python連接和使用大模型,并通過示例展示如何在實際項目中應用這些技術,需要的朋友可以參考下2024-05-05Python實現(xiàn)如何根據(jù)文件后綴進行分類
本文主要為大家詳細介紹了如何通過python實現(xiàn)根據(jù)文件后綴實現(xiàn)分類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以關注一下2021-12-12Django零基礎入門之運行Django版的hello world
這篇文章主要介紹了Django零基礎入門之運行Django版的hello world,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09Python 中PyQt5 點擊主窗口彈出另一個窗口的實現(xiàn)方法
這篇文章主要介紹了Python 中PyQt5 點擊主窗口彈出另一個窗口的實現(xiàn)方法,本文代碼實例圖文相結合的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07