佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > python ChainMap管理用法實(shí)例講解

python ChainMap管理用法實(shí)例講解

熱門(mén)標(biāo)簽:網(wǎng)站文章發(fā)布 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 美圖手機(jī) 服務(wù)器配置 智能手機(jī) 檢查注冊(cè)表項(xiàng) 銀行業(yè)務(wù)

說(shuō)明

1、ChainMap的主要用例是提供一種有效的方法來(lái)管理多個(gè)范圍或上下文,并處理重復(fù)鍵的訪問(wèn)優(yōu)先級(jí)。

2、當(dāng)有多個(gè)存儲(chǔ)重復(fù)鍵的字典訪問(wèn)它們的順序時(shí),這個(gè)功能非常有用。

在ChainMap文檔中找到一個(gè)經(jīng)典的例子,它模擬Python如何分析不同命名空間中的變量名稱。

當(dāng)Python搜索名稱時(shí),它會(huì)依次搜索當(dāng)?shù)亍⑷趾蛢?nèi)置的功能域,直到找到目標(biāo)名稱。Python作用域是將名稱映射到對(duì)象的字典。

為了模擬Python的內(nèi)部搜索鏈,可以使用鏈映射。

實(shí)例

>>> 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>

知識(shí)點(diǎn)擴(kuò)展:

ChainMap類(lèi)管理的是一個(gè)字典序列,并按其出現(xiàn)的順序搜索以查找與鍵關(guān)聯(lián)的值。ChainMap提供了一個(gè)很好的“上下文”容器,因此可以把它看成一個(gè)棧,棧增長(zhǎng)時(shí)發(fā)生變更,棧收縮時(shí)這些變更被丟棄。

下面,我們來(lái)看看其基本的使用規(guī)則:

import collections

a = {"a": "A", "c": "c", }
b = {"b": "B", "c": "D", }

col = collections.ChainMap(a, b)
# 和普通字典一樣訪問(wèn)
print(col["a"])
print(list(col.keys()), list(col.values()))

for key, value in col.items():
    print(key, value)

可以看到,在相同的key值情況下,只有子映射a的值。這也就是說(shuō)明ChainMap是按子映射傳遞到構(gòu)造函數(shù)的順序來(lái)搜索這些子映射。

以上就是python ChainMap管理用法實(shí)例講解的詳細(xì)內(nèi)容,更多關(guān)于python ChainMap的管理用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python實(shí)現(xiàn)字典序列ChainMap
  • 在Python中合并字典模塊ChainMap的隱藏坑【推薦】
  • python ChainMap的使用和說(shuō)明詳解
  • python ChainMap 合并字典的實(shí)現(xiàn)步驟

標(biāo)簽:長(zhǎng)治 紅河 滄州 上海 新疆 樂(lè)山 沈陽(yáng) 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python ChainMap管理用法實(shí)例講解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    清远市| 义乌市| 呼伦贝尔市| 皮山县| 上虞市| 易门县| 平乡县| 荆门市| 高唐县| 荣成市| 万安县| 阿克陶县| 哈密市| 永昌县| 德州市| 成安县| 合作市| 安溪县| 凤翔县| 广州市| 砚山县| 建阳市| 资中县| 伊吾县| 凤翔县| 工布江达县| 茶陵县| 阳信县| 枞阳县| 措美县| 张掖市| 九龙坡区| 孝昌县| 衢州市| 小金县| 周口市| 和平区| 林周县| 浦东新区| 涟源市| 惠水县|