On Dec 27, 2005, at 11:06 PM, Eric Nieuwland wrote: ... >>> def zerop(x): >>> return x==0 >>> >>> all(some_objects, zerop) >> >> and why would that be better than >> all(o==0 for o in some_objects) >> ? > > all() can be terminated at the first false element. For very long > sequences this has important performance benefits. Besides, it makes
Of course it can -- in both formulations. genexp's are also computed "as needed", only one item at a time: you appear to imply they don't, maybe you're confusing them with list comprehensions. What I'm asking is, what are the ADVANTAGES of the pred form, that make it worth paying the conceptual cost of having "two obvious ways" to do one task. > all(seq,pred) the equivalent of pred(seq[0]) and pred(seq[1]) and > pred(seq[2]) and ... ...and also the equivalent of all(pred(s) for s in seq) -- which is exactly my problem: I don't like redundant good ways of expressing identical tasks. The genexp will often be more compact, whenever the 'pred' requires a def, a lambda, or something like operator.attrgetter, anyway. Alex _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com