我通过以下Python表达好奇:表达式`dict(d1,** d2)`中的`**`是什么意思?
d3 = dict(d1, **d2)
任务是2个字典合并到第三之一,并且上述表达式完成任务就好了。我对**运算符感兴趣,它对于表达式究竟做了什么。我认为**是电力运营商,并没有看到它在上述背景下使用。
的代码片段全是这样的:
>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'c': 3, 'd': 4}
>>> d3 = dict(d1, **d2)
>>> print d3
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
需要注意的是,GvR认为这个表达式是[卑鄙的](http://mail.python.org/pipermail/python-dev/2010-April/099459.html) – elhefe 2012-08-24 18:19:35
这只有在' d2'是字符串,至少在Python 3中。 – nobar 2013-08-17 23:00:02
哦,很酷,我没有意识到它在Python 2中完全可以工作。我想这就是dict(d1,** d2)'over'dict ** d1,** d2)'或'{d1,** d2}'或'{** d1,** d2}''''''''在Python 2中有效。我认为最后一个是Python 3中的首选语法,因为它简洁而一致。但很高兴知道有一种方法可以在Python 2中实现,至少在字符串键中,即使它看起来有点冒失。 – 2017-06-13 17:58:22