91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python?ChainMap怎么使用

發布時間:2023-03-02 17:10:50 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“python 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,作用域

比如用戶指定的命令行參數優先于環境變量的示例,而環境變量優先于默認值:

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

讀到這里,這篇“python ChainMap怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桂平市| 内乡县| 梧州市| 麻江县| 黄浦区| 富裕县| 邯郸县| 嵩明县| 江安县| 永安市| 洛南县| 和平县| 娱乐| 营山县| 保德县| 疏附县| 台湾省| 淮北市| 桂平市| 贡觉县| 轮台县| 互助| 南靖县| 澄迈县| 哈巴河县| 信丰县| 嵊州市| 社旗县| 宣城市| 东至县| 启东市| 林西县| 曲靖市| 胶州市| 崇仁县| 湘西| 仙桃市| 荣成市| 台东县| 西充县| 科技|