<div dir="ltr"><div class="im" style="font-family:arial,sans-serif;font-size:13px">On Thu, Aug 8, 2013 at 6:18 AM, Joshua Landau <span dir="ltr"><<a href="mailto:joshua@landau.ws" target="_blank">joshua@landau.ws</a>></span> wrote:</div>
<div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>I'm actually posting to point out<br><a href="http://www.python.org/dev/peps/pep-0448/" target="_blank">http://www.python.org/dev/peps/pep-0448/</a> would let you write:<br><br>    [*(item, item) for item in items]</blockquote>
<div><br></div></div><div>It seems like that it can be only used in python 3.4? I just use python 2.7 because of work needs.</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>> For lists only, should be fast:<br>><br>>>>> result = 2*len(items)*[None]<br>>>>> result[::2] = result[1::2] = items<br>>>>> result<br>> [b, b, a, a, c, c]</blockquote><div>
 </div></div><div>Yeah, this is amazing and very fast.</div><div><br></div><div>I just make a test:</div><div><br></div><div><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">import</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(220,20,60)">timeit</span><div class="im">
<br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">from</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(220,20,60)">itertools</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">import</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> chain</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> tee</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> repeat</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><br></div><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">x </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">[</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">1</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">2</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">3</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">4</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">5</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">6</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">7</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">8</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">]</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">def</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> test1</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">:</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    </span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">[</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">i </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">for</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> i </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">in</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> x </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">for</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> y </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">in</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(0,128,0)">range</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,69,0)">2</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">]</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">def</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> test2</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">:</span><div class="im">
<br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    tmp </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">[</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">]</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">for</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> i </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">in</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> x:</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">        tmp.</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">append</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">i</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">        tmp.</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">append</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">i</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><br></div><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">def</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> test3</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">:</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(0,128,0)">list</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">chain.</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">from_iterable</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(0,128,0)">zip</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">*tee</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">x</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">def</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> test4</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">:</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    result </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,69,0)">2</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> * </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(0,128,0)">len</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">x</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> * </span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">[</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(0,128,0)">None</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">]</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    result</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">[</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">::</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">2</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">]</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> result</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">[</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">1</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">::</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">2</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">]</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> x</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><br><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">if</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> __name__ </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">==</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(72,61,139)">'__main__'</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">:</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    t1 </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(220,20,60)">timeit</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">.</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">Timer</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(72,61,139)">"test1()"</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(72,61,139)">"from __main__ import test1"</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    t2 </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(220,20,60)">timeit</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">.</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">Timer</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(72,61,139)">"test2()"</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(72,61,139)">"from __main__ import test2"</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    t3 </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(220,20,60)">timeit</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">.</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">Timer</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(72,61,139)">"test3()"</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(72,61,139)">"from __main__ import test3"</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    t4 </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">=</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(220,20,60)">timeit</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">.</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">Timer</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(72,61,139)">"test4()"</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(102,204,102)">,</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(72,61,139)">"from __main__ import test4"</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">print</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> t1.</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(220,20,60)">timeit</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,69,0)">1000000</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)">    </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,119,0);font-weight:bold">print</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(46,52,54)"> t2.</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(220,20,60)">timeit</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(247,247,247);color:rgb(255,69,0)">1000000</span><span style="line-height:1.2em;background-color:rgb(247,247,247);font-family:monospace">)</span><br>
<span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)">    </span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,119,0);font-weight:bold">print</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(46,52,54)"> t3.</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(220,20,60)">timeit</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;background-color:rgb(251,251,251);color:rgb(255,69,0)">1000000</span><span style="line-height:1.2em;background-color:rgb(251,251,251);font-family:monospace">)</span></div>
<div><span style="color:rgb(46,52,54);font-family:monospace;line-height:1.2em">    </span><span style="font-family:monospace;line-height:1.2em;color:rgb(255,119,0);font-weight:bold">print</span><span style="color:rgb(46,52,54);font-family:monospace;line-height:1.2em"> t4.</span><span style="font-family:monospace;line-height:1.2em;color:rgb(220,20,60)">timeit</span><span style="line-height:1.2em;font-family:monospace">(</span><span style="font-family:monospace;line-height:1.2em;color:rgb(255,69,0)">1000000</span><span style="line-height:1.2em;font-family:monospace">)</span></div>
<div><span style="line-height:1.2em;font-family:monospace"><br></span></div><div>And the result is:</div></div></div><blockquote style="font-family:arial,sans-serif;font-size:13px;margin:0px 0px 0px 40px;border:none;padding:0px">
<div class="gmail_extra"><div class="gmail_quote"><span style="background-color:rgb(247,247,247)">4.56177520752</span></div></div><div class="gmail_extra"><div class="gmail_quote">2.85114097595</div></div><div class="gmail_extra">
<div class="gmail_quote">7.61084198952</div></div><div class="gmail_extra"><div class="gmail_quote">1.29519414902</div></div></blockquote></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 8, 2013 at 6:18 AM, Joshua Landau <span dir="ltr"><<a href="mailto:joshua@landau.ws" target="_blank">joshua@landau.ws</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 7 August 2013 17:59, Peter Otten <__<a href="mailto:peter__@web.de">peter__@web.de</a>> wrote:<br>

> liuerfire Wang wrote:<br>
><br>
>> Here is a list x = [b, a, c] (a, b, c are elements of x. Each of them are<br>
>> different type).  Now I wanna generate a new list as [b, b, a, a, c, c].<br>
>><br>
>> I know we can do like that:<br>
>><br>
>> tmp = []<br>
>> for i in x:<br>
>>     tmp.append(i)<br>
>>     tmp.append(i)<br>
>><br>
>> However, I wander is there a more beautiful way to do it, like [i for i in<br>
>> x]?<br>
><br>
> Using itertools:<br>
><br>
>>>> items<br>
> [b, a, c]<br>
>>>> from itertools import chain, tee, repeat<br>
><br>
>>>> list(chain.from_iterable(zip(*tee(items))))<br>
> [b, b, a, a, c, c]<br>
><br>
> Also using itertools:<br>
><br>
>>>> list(chain.from_iterable(repeat(item, 2) for item in items))<br>
> [b, b, a, a, c, c]<br>
<br>
</div>list(chain.from_iterable([item, item] for item in items))<br>
?<br>
<br>
<br>
I'm actually posting to point out<br>
<a href="http://www.python.org/dev/peps/pep-0448/" target="_blank">http://www.python.org/dev/peps/pep-0448/</a> would let you write:<br>
<br>
    [*(item, item) for item in items]<br>
<br>
which I think is totz rad and beats out OP's<br>
<br>
    [item for item in items for _ in range(2)]<br>
<br>
in readability, succinctness and obviousness.<br>
<br>
<br>
PS: For jokes, you can also painfully do:<br>
<br>
    list((yield item) or item for item in items)<br>
<div class="im"><br>
<br>
> For lists only, should be fast:<br>
><br>
>>>> result = 2*len(items)*[None]<br>
>>>> result[::2] = result[1::2] = items<br>
>>>> result<br>
> [b, b, a, a, c, c]<br>
><br>
> But I would call none of these beautiful...<br>
<br>
</div>Au contraire, that is marvelous (I'd still avoid it, though).<br>
<span class="HOEnZb"><font color="#888888">--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Best regards.</div><div>/**********************************</div><div><div>google+: <a href="http://gplus.to/onepiece" target="_blank">+liuerfire</a> twitter: <a href="https://twitter.com/#!/liuerfire" target="_blank">@liuerfire</a></div>
<div><a href="http://db.tt/YGEdRM0" target="_blank">蛋疼不蛋疼的都可以试着点一下~^_^~</a></div><div>***********************************/</div><div><br></div></div>
</div>