Philip Bloom wrote: > Uh. > Try: > Imax=1000000000 > a=0 > i=0 > While(i<imax): > a= a+10 > i=i+1 > print a > I suspect you will find it is way faster than using range or xrange for > large numbers and map far more closely in the final result to what you > are doing on matlab's side. At least last I checked, xrange and range > both involve iterating through an array, which is much slower in all > cases than just doing an int vs int compare (which is what your matlab > is doing).
How did you check? $ python -m timeit "for i in xrange(1000000): pass" 10 loops, best of 3: 47.5 msec per loop $ python -m timeit "i = 0" "while i < 1000000: i += 1" 10 loops, best of 3: 152 msec per loop $ So an empty while loop takes about three times as long as the equivalent for loop. Also: """ class xrange(object) | xrange([start,] stop[, step]) -> xrange object | | Like range(), but instead of returning a list, returns an object that | generates the numbers in the range on demand. For looping, this is | slightly faster than range() and more memory efficient. """ Peter -- http://mail.python.org/mailman/listinfo/python-list