<div dir="ltr"><div class="gmail_quote">
<div dir="ltr"><br>
<div class="gmail_quote">
<div class="im">On Fri, Jun 19, 2009 at 6:11 AM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span> wrote:<br></div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>
<div class="im">On Fri, 19 Jun 2009 07:02:12 am Terry Reedy wrote:<br><br></div>
<div class="im">As I see it, the correct solution for "my function needs to iterate over<br>an iterable twice" is not to expect the caller to pass a sequence, but<br>to convert the iterable to a sequence inside your function:<br>
<br>def function(iterable):<br>   # Iterate over iterable twice<br>   L = list(iterable)<br>   for _ in (1, 2):<br>       for x in L:<br>           pass</div></div></blockquote>
<div> </div>
<div>As I see it the correct solution is</div>
<div>
<div class="im">def function(iterable):<br>   # Iterate over iterable twice<br></div>   L = iterable.clone() #can be done? 
<div class="im"><br> <br>    for x in L:<br>        pass </div></div></div>
<div>    for x in iterable :<br>        pass</div>
<div> </div>
<div>this way i avoid endless iterators...<br></div></div></div><br></div>