python ChainMap的突變用法

z_paul發表於2021-09-11

python ChainMap的突變用法

1、ChainMap支援突變。換句話說,允許更新、新增、刪除和彈出鍵。這種情況這些操作只作用於第一個對映。

>>> from collections import ChainMap
 
>>> numbers = {"one": 1, "two": 2}
>>> letters = {"a": "A", "b": "B"}
 
>>> alpha_num = ChainMap(numbers, letters)
>>> alpha_num
ChainMap({'one': 1, 'two': 2}, {'a': 'A', 'b': 'B'})
 
>>> # Add a new key-value pair
>>> alpha_num["c"] = "C"
>>> alpha_num
ChainMap({'one': 1, 'two': 2, 'c': 'C'}, {'a': 'A', 'b': 'B'})
 
>>> # Update an existing key
>>> alpha_num["b"] = "b"
>>> alpha_num
ChainMap({'one': 1, 'two': 2, 'c': 'C', 'b': 'b'}, {'a': 'A', 'b': 'B'})
 
>>> # Pop keys
>>> alpha_num.pop("two")
2
>>> alpha_num.pop("a")
Traceback (most recent call last):
    ...
KeyError: "Key not found in the first mapping: 'a'"
 
>>> # Delete keys
>>> del alpha_num["c"]
>>> alpha_num
ChainMap({'one': 1, 'b': 'b'}, {'a': 'A', 'b': 'B'})
>>> del alpha_num["a"]
Traceback (most recent call last):
    ...
KeyError: "Key not found in the first mapping: 'a'"
 
>>> # Clear the dictionary
>>> alpha_num.clear()
>>> alpha_num
ChainMap({}, {'a': 'A', 'b': 'B'})

2、改變給定鏈對映內容的操作只會影響第一個對映,即使試圖改變列表中的其他對映中的鍵。

可以使用此行為建立可更新的鏈對映,而不修改原始輸入字典。在這種情況下,您可以使用空字典作為ChainMap的第一個引數。

>>> from collections import ChainMap
 
>>> numbers = {"one": 1, "two": 2}
>>> letters = {"a": "A", "b": "B"}
 
>>> alpha_num = ChainMap({}, numbers, letters)
>>> alpha_num
ChainMap({}, {'one': 1, 'two': 2}, {'a': 'A', 'b': 'B'})
 
>>> alpha_num["comma"] = ","
>>> alpha_num["period"] = "."
 
>>> alpha_num
ChainMap(
    {'comma': ',', 'period': '.'},
    {'one': 1, 'two': 2},
    {'a': 'A', 'b': 'B'}
)

以上就是python ChainMap的突變用法,希望對大家有所幫助。更多Python學習指路:

本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/75/viewspace-2828350/,如需轉載,請註明出處,否則將追究法律責任。

相關文章