在 Python 3.5+ 中,确实引入了一种新的语法来解包字典,并将其内容合并到新字典中。不过,这里的操作符不是 **
,而是 {**dict1, **dict2}
的形式,在创建新字典时将多个字典解包并合并。这种语法在函数参数、字典推导式或字面量中都非常有用。
下面是一个例子,展示了如何使用这种新语法来合并字典:
# 定义两个字典
dict1 = {
'a': 1, 'b': 2}
dict2 = {
'b': 3, 'c': 4}
# 使用 ** 操作符来合并字典
merged_dict = {
**dict1, **dict2}
# 打印合并后的字典
print(merged_dict) # 输出可能是 {'a': 1, 'b': 3, 'c': 4}
# 注意:如果键重复,后面的字典中的值会覆盖前面的值
在这个例子中,dict1
和 dict2
被解包并合并到一个新的字典 merged_dict
中。由于 dict2
中的 'b'
键也出现在 dict1
中,因此 dict2
中的值(3
)覆盖了 dict1
中的值(2
)。
此外,在函数调用时,你也可以使用 **
操作符来将字典的内容作为命名参数传递:
def func(a, b, c):
print(a, b, c)
params = {
'a': 1, 'b': 2, 'c': 3}
func(**params) # 输出: 1 2 3
在这个例子中,params
字典被解包,并将其内容作为命名参数传递给 func
函数。
请注意,虽然这种解包语法在字典字面量中很有用,但它并不适用于所有版本的 Python。确保你正在使用的 Python 版本支持这种语法(Python 3.5 或更高版本)。