title: What does `**` mean in the expression `dict(d1, **d2)`?
body: <p>I am intrigued by the following python expression:</p>
  
  <pre><code>d3 = dict(d1, **d2)
  </code></pre>
  
  <p>The task is to merge 2 dictionaries into a third one, and the above expression accomplishes the task just fine. I am interested in the ** operator and what exactly is it doing to the expression. I thought that ** was the power operator and haven't seen it used in the context above yet.</p>
  
  <p>The full snippet of code is this:</p>
  
  <pre><code>&gt;&gt;&gt; d1 = {'a': 1, 'b': 2}
  &gt;&gt;&gt; d2 = {'c': 3, 'd': 4}
  &gt;&gt;&gt; d3 = dict(d1, **d2)
  &gt;&gt;&gt; print d3
  {'a': 1, 'c': 3, 'b': 2, 'd': 4}
  </code></pre>