チェーンChainmap
1592 ワード
ChainMapを使用すると、複数の辞書を1つの辞書として直列に処理できます.
直列に接続されたデータに直接アクセスできます
異なる辞書に同じプライマリ・キーがある場合、直列に接続されたデータを巡回すると、以前の
新しいdictを動的に追加できます
mapsメソッドは、直列に接続された辞書をリスト形式で表示します.
ChainMapはソースデータのコピーではなく、ソースデータを指します
from collections import ChainMap
user_dict1 = {"a": "xiaohong", "b": "xiaohua"}
user_dict2 = {"c": "xiaopang", "d": "xiaoming"}
new_dict = ChainMap(user_dict1, user_dict2)
print(new_dict)
# ChainMap({'a': 'xiaohong', 'b': 'xiaohua'}, {'c': 'xiaopang', 'd': 'xiaoming'})
直列に接続されたデータに直接アクセスできます
print(new_dict["c"])
# xiaopang
異なる辞書に同じプライマリ・キーがある場合、直列に接続されたデータを巡回すると、以前の
user_dict1 = {"a": "xiaohong", "b": "xiaohua"}
user_dict2 = {"b": "xiaopang", "d": "xiaoming"}
new_dict = ChainMap(user_dict1, user_dict2)
for key, value in new_dict.items():
print(key, value)
# d xiaoming
# b xiaohua
# a xiaohong
新しいdictを動的に追加できます
# new_dict.new_child(new_dict)
#
# print(new_dict)
# for key, value in new_dict.items():
# print(key, value)
mapsメソッドは、直列に接続された辞書をリスト形式で表示します.
print(new_dict.maps)
# [{'a': 'xiaohong', 'b': 'xiaohua'}, {'c': 'xiaopang', 'd': 'xiaoming'}]
ChainMapはソースデータのコピーではなく、ソースデータを指します
new_dict.maps[0]["a"] = "pangzi"
print(new_dict)
# ChainMap({'a': 'pangzi', 'b': 'xiaohua'}, {'c': 'xiaopang', 'd': 'xiaoming'})