<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>