<br><br><div class="gmail_quote">On Sat, Mar 15, 2008 at 9:15 AM, Guido van Rossum &lt;<a href="mailto:guido@python.org">guido@python.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thomas Wouters suggests some new syntax:<br>
<br>
<a href="http://bugs.python.org/issue2292" target="_blank">http://bugs.python.org/issue2292</a><br>
<br>
&gt;&gt;&gt; a, b, *c = range(5)<br>
<br>
&gt;&gt;&gt; *a, b, c = a, b, *c<br>
&gt;&gt;&gt; a, b, c<br>
([0, 1, 2], 3, 4)<br>
&gt;&gt;&gt; [ *a, b, c ]<br>
[0, 1, 2, 3, 4]<br>
&gt;&gt;&gt; L = [ a, (3, 4), {5}, {6: None}, (i for i in range(7, 10)) ]<br>
&gt;&gt;&gt; [ *item for item in L ]<br>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]<br>
<br>
Also, yielding everything from an iterator:<br>
<br>
&gt;&gt;&gt; def flatten(iterables):<br>
... &nbsp; &nbsp; for it in iterables:<br>
... &nbsp; &nbsp; &nbsp; &nbsp; yield *it<br>
...<br>
&gt;&gt;&gt; L = [ a, (3, 4), {5}, {6: None}, (i for i in range(7, 10)) ]<br>
&gt;&gt;&gt; flatten(L)<br>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]<br>
</blockquote><div><br>As you mentioned in the ticket, that&#39;s actually a cut-and-paste error:<br><br>&gt;&gt;&gt; flatten(L)<br>&lt;generator object at 0xb7cc5fb4&gt;<br>&gt;&gt;&gt; list(flatten(L))<br>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]<br>
<br>Also, it does sets and setcomps too:<br><br></div></div>&gt;&gt;&gt; { *a, 0, 4}<br>{0, 1, 2, 4}<br>&gt;&gt;&gt; L = [ a, (3, 4), {5}, {6: None}, (i for i in range(7, 10)) ]<br>&gt;&gt;&gt; { *item for item in L }<br>
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}<br><br>-- <br>Thomas Wouters &lt;<a href="mailto:thomas@python.org">thomas@python.org</a>&gt;<br><br>Hi! I&#39;m a .signature virus! copy me into your .signature file to help me spread!