On 02/05/2015 19:34, BartC wrote:
On 02/05/2015 17:39, Mark Lawrence wrote:
On 02/05/2015 17:17, BartC wrote:
On 02/05/2015 16:40, Mark Lawrence wrote:


for item in items:

When did this change, or has it always been this way and you were
simply
using an idiom from other languages?

Your example is the equivalent of 'forall' in other languages, where you
iterate over the values of some collection of data.

I agree that most for-loops in Pythonic code probably fall into that
category.

But for looping over a simple integer range, then using 'range' to
denote the range (and build a list as it used to do), was how it was
done. And earlier on people would have been porting coding code to
Python at which point a straightforward 'for i=a to b' loop suddenly
acquired a substantial overhead it didn't have before!


All you are saying is that they didn't bother reading the docs and
learning how to write a *PYTHON* for loop.  Failing that don't bother
using range, just directly convert your (say) C loop into Python.  I
really don't see any issue here at all.

OK, so it's the programmer's fault if as fundamental a concept as a
for-loop ranging over integers is implemented inefficiently. He has to
transform it into high-level terms, or has to reconstruct it somehow
using a while-loop and an incrementing loop index.

Now I understand (why Python has been beset for so long with performance
problems, if that is a typical attitude!).

BTW, why did they introduce the 'xrange' thing; for fun? Or did someone
realise there might have been an issue after all?

(I tried an empty loop counting to 1 billion in Python 2.x, using 'for i
in range'. It ran out of memory. Counting to 100 million instead, it
worked, but still used a massive 1.5GB RAM while doing so (and took 6
seconds to count to 100M, not too bad for Python)

Outside Python, it might typically take a few seconds to count to 1
billion, and would use virtually no memory.

Why would anyone want to loop over all those numbers instead of
iterating over actual data? For any number of reasons. Counting how many
happy numbers are in that range for one!)


I give up.

--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.

Mark Lawrence

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

Reply via email to