Duncan Booth <duncan.bo...@invalid.invalid> wrote:
> John Posner <jjpos...@snet.net> wrote: > >> Do know what in the itertools implementation causes adding a 'if p <= >> sqrt(n)' clause to *decrease* performance, while adding a >> 'takewhile()' clause *increases* performance? > > I haven't timed it, but I would guess that the takewhile was faster > only because the sqrt(n) had been factored out of the loop. Try the > original loop again precalculating the sqrt(n) and see how that compares. > Which of course is rubbish, extracting the sdqrt will have an effect but the main factor is that takewhile exits the loop as soon as the condition is false whereas a conditional in a generator comprehension doesn't stop the loop continuing to the end. -- http://mail.python.org/mailman/listinfo/python-list