title: Unpacking generalizations
body: <p><a href="https://www.python.org/dev/peps/pep-0448/" rel="noreferrer">PEP 448 -- Additional Unpacking Generalizations</a> allowed:</p>
  <pre><code>&gt;&gt;&gt; LOL = [[1, 2], ['three']]
  &gt;&gt;&gt; [*LOL[0], *LOL[1]]
  [1, 2, 'three']
  </code></pre>
  <p>Alright!  Goodbye <a href="https://docs.python.org/3/library/itertools.html#itertools.chain" rel="noreferrer"><code>itertools.chain</code></a>.  Never liked you much anyway.</p>
  <pre><code>&gt;&gt;&gt; [*L for L in LOL]
    File &quot;&lt;ipython-input-21-e86d2c09c33f&gt;&quot;, line 1
      [*L for L in LOL]
      ^
  SyntaxError: iterable unpacking cannot be used in comprehension
  </code></pre>
  <p><strong>Oh</strong>.  Why can't we have nice things?</p>
  <p>Unfortunately there are syntax errors for all of them:</p>
  <pre><code>[*l for l in lists]    # for l in lists: result.extend(l)
  {*s for s in sets}     # for s in sets: result.update(s)
  {**d for d in dicts}   # for d in dicts: result.update(d)
  (*g for g in gens)     # for g in gens: yield from g
  </code></pre>
  <p>Unpacking in a comprehension seems to be obvious and Pythonic, and there's a quite natural extension from shorthand &quot;for-loop &amp; append&quot; to &quot;for-loop &amp; extend&quot;.</p>
  <p>But since they've bothered to add that special error message, there was presumably a reason for disabling it. So, what's the problem with that syntax?</p>