一、问题来源:
review代码时,发现{**dict1, **dict2}不清楚有什么作用?
二、实验:
d1 = {'a': 1, 'b': 2}
d2 = {'c': 3, 'd': 4}
print(dict(**d1, **d2))
print({**d1, **d2})
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}
将两个字典进行合并的效果
三、why-合并的原理
The ** turns the dictionary into keyword parameters;
{**dict1, **dict2}可以变成 a = 1, b = 2, c=3, d=4
def greet_me_1(a=1, b=2):
print(f'a={a}, b={b}')
greet_me_1(**d1)
output:
a=1, b=2
四、合并的优势
相比于d1.update(d2),返回值就是合并的结果,而update的返回结果是None,所以在直接需要返回结果的时候,这种方法就是有优势的!