title: Star * operator on left vs right side of an assignment statement
body: <p>This questions stems from <a href="https://www.python.org/dev/peps/pep-0448/" rel="noreferrer"><code>PEP 448</code> -- Additional Unpacking Generalizations</a> and is present in Python 3.5 as far as I'm aware (and not back-ported to <code>2.x</code>). Specifically, in the section <strong>Disadvantages</strong>, the following is noted:</p>
  
  <blockquote>
    <p>Whilst <code>*elements, = iterable</code> causes <code>elements</code> to be a <code>list</code>, 
    <code>elements = *iterable</code>, causes <code>elements</code> to be a <code>tuple</code>. The reason for this may confuse people unfamiliar with the construct.</p>
  </blockquote>
  
  <p>Which does indeed hold, for <code>iterable = [1, 2, 3, 4]</code>, the first case yields a <code>list</code>:</p>
  
  <pre><code>&gt;&gt;&gt; *elements, = iterable
  &gt;&gt;&gt; elements
  [1, 2, 3, 4]
  </code></pre>
  
  <p>While for the second case a <code>tuple</code> is created:</p>
  
  <pre><code>&gt;&gt;&gt; elements = *iterable,
  &gt;&gt;&gt; elements
  (1, 2, 3, 4)
  </code></pre>
  
  <p>Being unfamiliar with the concept, I am confused. Can anyone explain this behavior? Does the starred expression act differently depending on the side it is on?</p>