欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?ChainMap的使用詳解

 更新時間:2023年03月02日 15:17:01   作者:小小魚er  
chainMap是邏輯上合并兩個字典為一個邏輯單元,合并后的結構實際上是一個列表,只是邏輯上是仍然為一個字典(并未生成新的),對此列表的操作模擬了各種字典的操作,這篇文章主要介紹了python?ChainMap的使用,需要的朋友可以參考下

鏈接字典

chainMap是邏輯上合并兩個字典為一個邏輯單元,合并后的結構實際上是一個列表,只是邏輯上是仍然為一個字典(并未生成新的),對此列表的操作模擬了各種字典的操作。合并后的取值及操作仍然是對原始字典的操作。

相同的key值合并后取第一個字典里的值作為重復key的值,

from collections import ChainMap
 
dict1={"x":1,"y":3,"t":12}
dict2={"x":5,"z":3}
 
chain_dict=ChainMap(dict1,dict2)
#相同的key值合并后取第一個dict里的值作為重復key的值
print(chain_dict["x"])
print(chain_dict["z"])

結果:

1
3

對chain_dict的增刪改查影響的都是第一個字典

from collections import ChainMap
 
dict1={"x":1,"y":3,"t":12}
dict2={"x":5,"z":3}
 
chain_dict=ChainMap(dict1,dict2)
#對chain_dict的增刪改查影響的都是dict1
chain_dict["a"]=10
print(dict1)
chain_dict["x"]=100
print(dict1)
del dict1["t"]
print(dict1)
print(dict2)

 結果:

{'x': 1, 'y': 3, 't': 12, 'a': 10}
{'x': 100, 'y': 3, 't': 12, 'a': 10}
{'x': 100, 'y': 3, 'a': 10}
{'x': 5, 'z': 3}

maps屬性可輸出所以合并的字典

from collections import ChainMap
dict1={"x":1,"y":3,"t":12}
dict2={"x":5,"z":3}
 
chain_dict=ChainMap(dict1,dict2)
print(chain_dict.maps)

結果:

[{'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3}]

new_child()方法是在合并后的映射列表頭部位置插入空映射{}

from collections import ChainMap
dict1={"x":1,"y":3,"t":12}
dict2={"x":5,"z":3}
 
chain_dict=ChainMap(dict1,dict2)
print(chain_dict.maps)
a=chain_dict.new_child()
print(a)
print(a.maps)

結果:

[{'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3}]
ChainMap({}, {'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3})
[{}, {'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3}]

new_child()可以衍生出parent()方法的使用,parent()其實是在合并后的映射列表去掉頭部位置第一個映射后的結果:

from collections import ChainMap
dict1={"x":1,"y":3,"t":12}
dict2={"x":5,"z":3}
chain_dict=ChainMap(dict1,dict2)
print(chain_dict.maps)
a=chain_dict.new_child()
print(a)
print(a.maps)
b=a.parents
print("b=",b)
bb=b.parents
print("bb=",bb)

結果:

[{'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3}]
ChainMap({}, {'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3})
[{}, {'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3}]
b= ChainMap({'x': 1, 'y': 3, 't': 12}, {'x': 5, 'z': 3})
bb= ChainMap({'x': 5, 'z': 3})

鏈接字典的應用:

鏈接字典及它的new_child和parent方法特性適合處理作用域及查找鏈類似問題:

1,查找鏈

import builtins
pylookup = ChainMap(locals(), globals(), vars(builtins))

2,作用域

比如用戶指定的命令行參數優(yōu)先于環(huán)境變量的示例,而環(huán)境變量優(yōu)先于默認值:

import os, argparse
 
defaults = {'color': 'red', 'user': 'guest'}
 
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--user')
parser.add_argument('-c', '--color')
namespace = parser.parse_args()
command_line_args = {k:v for k, v in vars(namespace).items() if v}
 
combined = ChainMap(command_line_args, os.environ, defaults)
print(combined['color'])
print(combined['user'])

用例參考資料:

python3的ChainMap_langb2014

到此這篇關于python ChainMap的使用的文章就介紹到這了,更多相關python ChainMap的使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Pytorch可視化之Visdom使用實例

    Pytorch可視化之Visdom使用實例

    Visdom 是一個專門用于 PyTorch 的交互式可視化工具,可以對實時數據進行豐富的可視化,幫助我們實時監(jiān)控在遠程服務器上進行的科學實驗,這篇文章主要給大家介紹了關于Pytorch可視化之Visdom使用的相關資料,需要的朋友可以參考下
    2021-08-08
  • Python?ORM數據庫框架Sqlalchemy的使用教程詳解

    Python?ORM數據庫框架Sqlalchemy的使用教程詳解

    對象關系映射(Object?Relational?Mapping,簡稱ORM)模式是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。本文主要介紹了其使用的相關資料,感興趣的小伙伴可以學習一下
    2022-10-10
  • 關于Python代碼混淆和加密技術

    關于Python代碼混淆和加密技術

    這篇文章主要介紹了關于Python代碼混淆和加密技術,Python進行商業(yè)開發(fā)時, 需要有一定的安全意識, 為了不被輕易的逆向還原,混淆和加密就有所必要了,需要的朋友可以參考下
    2023-07-07
  • python實現在多維數組中挑選符合條件的全部元素

    python實現在多維數組中挑選符合條件的全部元素

    今天小編就為大家分享一篇python實現在多維數組中挑選符合條件的全部元素,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 基于Python實現有趣的象棋游戲

    基于Python實現有趣的象棋游戲

    一直以來,中國象棋都是中華民族的一種象征,當然也是人們最為喜感的一種娛樂方式。這篇文章主要介紹了如何基于Python實現有趣的象棋游戲,感興趣的可以了解一下
    2023-03-03
  • python打造爬蟲代理池過程解析

    python打造爬蟲代理池過程解析

    這篇文章主要介紹了python打造爬蟲代理池過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • python requests包的request()函數中的參數-params和data的區(qū)別介紹

    python requests包的request()函數中的參數-params和data的區(qū)別介紹

    這篇文章主要介紹了python requests包的request()函數中的參數-params和data的區(qū)別介紹,具有很好參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 25個值得收藏的Python文本處理案例

    25個值得收藏的Python文本處理案例

    這篇文章主要給大家分享的是25個值得收藏的Python文本處理案例。Python?處理文本是一項非常常見的功能,本文整理了多種文本提取及NLP相關的案例,還是非常有收藏價值的,文章很長,可以收藏起來,總會用到的
    2022-02-02
  • python?selenium中Excel數據維護指南

    python?selenium中Excel數據維護指南

    這篇文章主要給大家介紹了關于python?selenium中Excel數據維護的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-03-03
  • Python簡單刪除列表中相同元素的方法示例

    Python簡單刪除列表中相同元素的方法示例

    這篇文章主要介紹了Python簡單刪除列表中相同元素的方法,結合具體實例形式分析了Python使用list、set方法針對列表元素的去重與排序操作實現技巧,非常簡單實用,需要的朋友可以參考下
    2017-06-06

最新評論