<div dir="ltr"><div dir="ltr" class="gmail_msg">Trying to restate the proposal, somewhat more formal following Random832 and Paul's suggestion.</div><div dir="ltr" class="gmail_msg"><br><div class="gmail_msg">I only speak about the single star.<div class="gmail_msg">---</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><b>The suggested change of syntax:</b></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">    comprehension ::=  starred_expression comp_for<br class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><b class="gmail_msg">Semantics:</b></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">(In the following, f(x) must always evaluate to an iterable)</div><div class="gmail_msg"><br></div><div class="gmail_msg">1. List comprehension:</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">    result = [*f(x) for x in iterable if cond]</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Translates to</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>result = []</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>for x in iterable:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>    if cond:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>        result.extend(f(x))</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">2. Set comprehension:</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">    result = {*f(x) for x in iterable if cond}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Translates to</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>result = set()</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>for x in iterable:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>    if cond:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-Apple-converted-space gmail_msg"> </span>        result.update(f(x))</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">3. Generator expression:</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">    (*f(x) for x in iterable if cond)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Translates to</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-inbox-inbox-Apple-converted-space gmail_msg"> </span>for x in iterable:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-inbox-inbox-Apple-converted-space gmail_msg"> </span>    if cond:</div><div class="gmail_msg">   <span class="m_-959292177410896504inbox-inbox-inbox-inbox-Apple-converted-space gmail_msg"> </span>        yield from f(x)</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Elazar</div><div class="gmail_msg"><br></div></div></div></div>