使用解包方法更新字典的优点

问题描述 投票:0回答:2

如果使用kwargs更新字典密钥有一个真正的优势,我感到很困惑。请按照以下示例:

def example():
    return {'a':1,'b':2,'c':3}

使用kwargs更新字典:

   {**example(),'b':9}
>> {'a': 1, 'b': 9, 'c': 3}

我也可以使用类似的东西:

example['b'] = 9

有人可以告诉我使用unpack方法更新dict或者给我一些关于它的阅读资料有什么好处?特别是当涉及嵌套字典时,因为这是我看到被使用的地方。

python python-3.x dictionary kwargs
2个回答
1
投票

{**example(),'b':9}通过解压example()返回的字典然后用密钥b更新新字典来创建一个新的字典,而example['b'] = 9就地更新字典b的关键example并且不创建新的字典。


0
投票

我认为你将**解包方法与**kwargs函数参数混淆。 **只需将example()返回的字典解包为键/值对,然后使用您传递给字典构造函数的附加键/值对'b':9创建一个新字典。

如果你只是一次添加一个键/值对,那么这个方法不会像example['b'] = 9那样分配它,而是如果你想将两个字典合并成一个字典那么它会更多有效地执行此操作new_dict = {**old_dict, **old_dict1}然后循环并将每个键/值对从两个词典添加到新词典。此方法仅适用于Python 3.5及更高版本,早期版本使用old_dict.update(old_dict2)。这里有更多关于蟒蛇解包方法和kwargs的reading

© www.soinside.com 2019 - 2024. All rights reserved.