title: Confusing double usage of python asterisk notation (as a function argument, or as a function definition)
body: <p>I'm a bit confused. Let's create a function called x. I know that by putting * before the y, this means that we can add as many arguments as we want.</p>
  
  <pre><code>def x(*y):
      return y
  </code></pre>
  
  <p>However. </p>
  
  <p><strong>Case 1:</strong></p>
  
  <pre><code>&gt;&gt;&gt; x(1, 2)
  (1, 2)
  </code></pre>
  
  <p><strong>Case 2:</strong>
  Let's pass a list [1,2] with an asterisk before it:</p>
  
  <pre><code>&gt;&gt;&gt; x(*[1,2])
  (1, 2)
  </code></pre>
  
  <p>It seems that the single asterisk has two uses:</p>
  
  <ol>
  <li>For allowing multiple arguments in a function - essentially putting them into a list</li>
  <li>If done twice, to "break apart" a list into separate items</li>
  </ol>
  
  <p>Why is this? Why can't I do something like: *a*b?</p>