[Python-ideas] Variations on a loop

Bruce Leban bruce at leapyear.org
Sat Aug 30 08:49:55 CEST 2008


On Fri, Aug 29, 2008 at 7:17 PM, Steven Bethard <steven.bethard at gmail.com>wrote:

> On Fri, Aug 29, 2008 at 6:25 PM, Bruce Leban <bruce at leapyear.org> wrote:
> > Not quite: len(items) requires iterating across the entire list which may
> > not be necessary or desirable. Plus you may need an intermediate variable
> to
> > store it. I think that's inferior.
>
> If len(items) requires iterating across the entire list, then you're
> not using a Python list object, you're using someone else's (poorly
> implemented) list data structure. Python lists give len(obj) in O(1).
>

items need not be a literal list. If you can compute this
   len([t for t in range(100) if foo(t)]):
without iterating over the list, then there's a Turing award waiting for
you. :-) (Yes, if you know what foo is perhaps you can optimize that. I'm
not counting that.) This is also why you may need an intermediate variable:
you don't want to compute that list more than once because foo(t) may have a
side effect.

--- Bruce
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20080829/02106cbd/attachment.html>


More information about the Python-ideas mailing list