<meta http-equiv="content-type" content="text/html; charset=utf-8">result = [i%2 for i in itertools.takewhile(lamda x:i&lt;  10, seq)]<div>is a good approach but it is taking little more time than the for loop over iterator.</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: sans-serif; font-size: 16px; line-height: 20px; "><pre style="overflow-x: auto; overflow-y: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; background-color: rgb(238, 255, 204); color: rgb(51, 51, 51); line-height: 15px; border-top-width: 1px; border-right-width: initial; border-bottom-width: 1px; border-left-width: initial; border-top-style: solid; border-right-style: none; border-bottom-style: solid; border-left-style: none; border-top-color: rgb(170, 204, 153); border-right-color: initial; border-bottom-color: rgb(170, 204, 153); border-left-color: initial; ">
<span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">def</span> <span class="nf" style="color: rgb(6, 40, 126); ">takewhile</span><span class="p">(</span><span class="n">predicate</span><span class="p">,</span> <span class="n">iterable</span><span class="p">):</span>
    <span class="c" style="color: rgb(64, 128, 144); font-style: italic; "># takewhile(lambda x: x&lt;5, [1,4,6,4,1]) --&gt; 1 4</span>
    <span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">for</span> <span class="n">x</span> <span class="ow" style="color: rgb(0, 112, 32); font-weight: bold; ">in</span> <span class="n">iterable</span><span class="p">:</span>
        <span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">if</span> <span class="n">predicate</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
            <span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">yield</span> <span class="n">x</span>
        <span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">else</span><span class="p">:</span>
            <span class="k" style="color: rgb(0, 112, 32); font-weight: bold; ">break</span></pre></span></div><div>I don&#39;t know why? As it seems that this for loop and the other for loop doing the same thing.</div><div>
<br></div><div>--nitin</div><div><br><br><div class="gmail_quote">On Fri, Aug 20, 2010 at 9:17 PM, bob gailer <span dir="ltr">&lt;<a href="mailto:bgailer@gmail.com">bgailer@gmail.com</a>&gt;</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 8/20/2010 5:44 AM, Steven D&#39;Aprano wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, 20 Aug 2010 06:10:59 pm Alan Gauld wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&quot;Steven D&#39;Aprano&quot;&lt;<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>&gt;  wrote<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
the purpose). No matter how fast you can perform a loop, it&#39;s<br>
always faster to avoid it altogether, so this:<br>
<br>
seq = xrange(10000000)<br>
result = []<br>
for i in seq:<br>
    if i&gt;= 10: break<br>
    result.append(i%2)<br>
<br>
<br>
will be much faster than this:<br>
<br>
seq = xrange(10000000)<br>
result = [i%2 for i in seq if i&lt;  10]<br>
</blockquote>
Although it should be pointed out that these are doing very different<br>
things.<br>
</blockquote>
Well yes, but I pointed out that you *can* bail out early of for-loops,<br>
but not list comprehensions. The whole point is with a list comp,<br>
you&#39;re forced to iterate over the entire sequence, even if you know<br>
that you&#39;re done and would like to exit.<br>
<br>
</blockquote></div>
Take a look at itertools.takewhile!<br>
<br>
result = [i%2 for i in itertools.takewhile(lamda x:i&lt;  10, seq)]<div class="im"><br>
<br>
<br>
-- <br>
Bob Gailer<br>
919-636-4239<br>
Chapel Hill NC<br>
<br>
_______________________________________________<br></div><div><div></div><div class="h5">
Tutor maillist  -  <a href="mailto:Tutor@python.org" target="_blank">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="http://mail.python.org/mailman/listinfo/tutor" target="_blank">http://mail.python.org/mailman/listinfo/tutor</a><br>
</div></div></blockquote></div><br></div>