Python – 在字典中追加多类型值
有时,在使用Python字典时,我们可能会遇到需要根据数据类型更新字典值的问题。这种类型的问题可以在包括数据在内的许多领域中得到应用。让我们讨论一种可以解决此问题的方法。
Input : test_dict = {‘gfg’ : “”, ‘is’ : {}, ‘best’ : []}
Output : {‘gfg’: ‘geeks’, ‘is’: {‘c’: 7}, ‘best’: [4, 5]}
Input : test_dict = {‘gfg’ : “123”, ‘is’ : {}, ‘best’ : [“geeks”]}
Output : {‘gfg’: ‘123geeks’, ‘is’: {‘c’: 7}, ‘best’: [‘geeks’, 4, 5]}
方法:使用isinstance() + update() + extend()
上述功能的组合可用于执行此任务。在此,我们使用 isinstance() 检查 value 的数据类型,并使用 update() 执行字典更新,使用 extend() 执行列表更新。
# Python3 code to demonstrate working of
# Append Multitype Values in Dictionary
# Using isinstance() + update() + extend()
# helper_fnc
def update_dictionary(key, val, test_dict):
if key not in test_dict:
current_dict[key] = value
elif type(val) not in [str, list, dict]:
raise ValueError("Invalid Data Type")
elif isinstance(val, list):
test_dict[key].extend(val)
elif isinstance(val, dict):
test_dict[key].update(val)
else:
test_dict[key] = test_dict[key] + val
return test_dict
# initializing dictionary
test_dict = {'gfg' : "geekfor", 'is' : {'a' : 5, 'b' : 6}, 'best' : [1, 2, 3]}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# initializing dict, string and append
up_dict = {'c' : 7}
up_str = 'geeks'
up_list = [4, 5]
# Append Multitype Values in Dictionary
# Using isinstance() + update() + extend()
res = update_dictionary('gfg', up_str, test_dict)
res = update_dictionary('is', up_dict, res)
res = update_dictionary('best', up_list, res)
# printing result
print("The update dictionary : " + str(res))
The original dictionary is : {‘is’: {‘b’: 6, ‘a’: 5}, ‘best’: [1, 2, 3], ‘gfg’: ‘geekfor’}
The update dictionary : {‘is’: {‘b’: 6, ‘a’: 5, ‘c’: 7}, ‘best’: [1, 2, 3, 4, 5], ‘gfg’: ‘geekforgeeks’}