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

python?ChainMap的使用詳解

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

鏈接字典

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

相同的key值合并后取第一個(gè)字典里的值作為重復(fù)key的值,

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

結(jié)果:

1
3

對(duì)chain_dict的增刪改查影響的都是第一個(gè)字典

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

 結(jié)果:

{'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)

結(jié)果:

[{'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)

結(jié)果:

[{'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()其實(shí)是在合并后的映射列表去掉頭部位置第一個(gè)映射后的結(jié)果:

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)

結(jié)果:

[{'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})

鏈接字典的應(yīng)用:

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

1,查找鏈

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

2,作用域

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

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

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

相關(guān)文章

  • Pytorch可視化之Visdom使用實(shí)例

    Pytorch可視化之Visdom使用實(shí)例

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

    Python?ORM數(shù)據(jù)庫框架Sqlalchemy的使用教程詳解

    對(duì)象關(guān)系映射(Object?Relational?Mapping,簡(jiǎn)稱ORM)模式是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。本文主要介紹了其使用的相關(guān)資料,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-10-10
  • 關(guān)于Python代碼混淆和加密技術(shù)

    關(guān)于Python代碼混淆和加密技術(shù)

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

    python實(shí)現(xiàn)在多維數(shù)組中挑選符合條件的全部元素

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

    基于Python實(shí)現(xiàn)有趣的象棋游戲

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

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

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

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

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

    25個(gè)值得收藏的Python文本處理案例

    這篇文章主要給大家分享的是25個(gè)值得收藏的Python文本處理案例。Python?處理文本是一項(xiàng)非常常見的功能,本文整理了多種文本提取及NLP相關(guān)的案例,還是非常有收藏價(jià)值的,文章很長(zhǎng),可以收藏起來,總會(huì)用到的
    2022-02-02
  • python?selenium中Excel數(shù)據(jù)維護(hù)指南

    python?selenium中Excel數(shù)據(jù)維護(hù)指南

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

    Python簡(jiǎn)單刪除列表中相同元素的方法示例

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

最新評(píng)論