We can do numeric iteration like:
for i in xrange(10):
print i,
and in C-style:
i = 0
while i < 10:
print i,
i = i + 1
Yes, I know, the first one is less error-prone, more pythonic but is it fast enough as C-style version?
PS. I'm from C++ planet and pretty new on Python one.
I am sure the while
version is slower. Python will have to lookup the add operation for the integer object on each turn of the loop etc, it is not pure C just because it looks like it!
And if you want a pythonic version of exactly the above, use:
print " ".join(str(i) for i in xrange(10))
Edit: My timings look like this. This is just a silly running loop without printing, just to show you what writing out "i += 1" etc costs in Python.
$ python -mtimeit "i=0" "while i < 1000: i+=1"
1000 loops, best of 3: 303 usec per loop
$ python -mtimeit "for i in xrange(1000): pass"
10000 loops, best of 3: 120 usec per loop