<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 12, 2014 at 12:16 PM, Chris Barker <span dir="ltr"><<a href="mailto:chris.barker@noaa.gov" target="_blank">chris.barker@noaa.gov</a>></span> wrote:<br><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">2) there are a number of TIPPS in the standard library: things like tupleiterator and friends, the range object, etc.</blockquote></div><br>The range object is not an iterator</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">>>> isinstance(range(1), collections.Iterator)</div><div class="gmail_extra">False</div><div class="gmail_extra"><br></div><div class="gmail_extra">and does not implement the iterator protocol</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">>>> range(1).__next__</div><div class="gmail_extra">Traceback (most recent call last):</div><div class="gmail_extra">  File "<stdin>", line 1, in <module></div><div class="gmail_extra">AttributeError: 'range' object has no attribute '__next__'</div><div class="gmail_extra"><br></div><div class="gmail_extra">Please don't confuse iterators and iterables:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">>>> isinstance(range(1), collections.Iterable)</div><div class="gmail_extra">True</div></div></div></div></div>