bartc wrote:

"Steven D'Aprano" <st...@remove-this-cybersource.com.au> wrote in message news:02969972$0$20647$c3e8...@news.astraweb.com...
On Fri, 14 Aug 2009 18:25:45 -0700, Dr. Phillip M. Feldman wrote:

It seems as though Python is actually expanding range(2,n) into a list
of numbers, even though this is incredibly wasteful of memory. There
should be a looping mechanism that generates the index variable values
incrementally as they are needed.


Others have already pointed out to you that xrange() (for Python 2.x)
does what you want. In Python 3.x, the old range() is gone for good, and
xrange() renamed to just range().

It does seem rather worrying that whoever originally thought up Python decided it would be a good idea to implement a simple 1 to N (or 0 to N-1) for-loop by first creating an array of N consecutive integers!

Whoever? I am shocked! ;-)

They must have known Python was going to be slow anyway, but this wouldn't have helped the speed any. Nor the memory consumption.

A for-loop, for iterating over a simple sequence, should be one of the fastest things in the language.

[Presumably the internal code that created those consecutive integers used a more conventional looping method...]


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

Reply via email to