On 9/6/2010 7:20 AM, Stefan Behnel wrote:
BartC, 06.09.2010 12:38:

(3) Since the loop variable is never used, why not have a special loop
statement that repeats code so many times?

There sort-of is, just slightly more general.

Because special cases are not special enough to break the rules. As
others have stated before, you can use itertools to reduce that part of
the looping overhead, if it really hurts your concrete code.

I ran the following test:
>>> from itertools import repeat
>>> n = 10**8
>>> for dummy in repeat(None,n): pass # 7 sec

>>> for dummy in range(n): pass # 11 sec

Times are for my older machine, subjectively counted. The difference is subjectively clear. Both functions count in C. I presume the difference is the cost of creating and deleting unneeded Python int objects. This difference is the reason the timeit module uses itertools.repeat for the inner loop that repeats the code to be timed.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to