title: Unpacking arguments: only named arguments may follow *expression
body: <p>The following works beautifully in Python:</p>
  
  <pre><code>def f(x,y,z): return [x,y,z]
  
  a=[1,2]
  
  f(3,*a)
  </code></pre>
  
  <p>The elements of <code>a</code> get unpacked as if you had called it like <code>f(3,1,2)</code> and it returns <code>[3,1,2]</code>. Wonderful!</p>
  
  <p>But I can't unpack the elements of <code>a</code> into the <em>first</em> two arguments:</p>
  
  <pre><code>f(*a,3)
  </code></pre>
  
  <p>Instead of calling that like <code>f(1,2,3)</code>, I get "SyntaxError: only named arguments may follow *expression".</p>
  
  <p>I'm just wondering why it has to be that way and if there's any clever trick I might not be aware of for unpacking arrays into arbitrary parts of argument lists without resorting to temporary variables.</p>