It feels so good, so quick and not C!
Steven Taschuk
staschuk at telusplanet.net
Wed Mar 19 00:19:08 EST 2003
Quoth John Machin:
> Steven Taschuk <staschuk at telusplanet.net> wrote in message news:<mailman.1047969613.29891.python-list at python.org>...
[...a strrev implementation...]
> > If you're just learning Python, you might want to spend a few
> > minutes studying this version. It has one slightly subtle point
> > for which I would write a comment if this were real code.)
>
> Which if any of the following "subtle" points did you mean? (1)
> "backwards" is as twice as large as it needs to be, with the unwanted
> guff jettisoned by zip(). [...]
That's the one, more or less.
Imho exploiting this behaviour of zip deserves the word subtle,
without scare quotes, for a Python newcomer. The point, of
course, is that the backwards range can be written more clearly
this way.
> [...] (2) "forwards", "backwards", and the zip()
> result constitute about (3 * len(orig)) objects clogging up memory.
*shrug* So use xrange and izip.
> (3) The cuteness of swapping by "x, y = y, x" hides the overhead of
> packing and unpacking a 2-tuple, which may or may not be faster than
> the traditional 3-assignment method.
I confess a weakness for the cute swapping method; on my machine
it is, in fact, perhaps 5% slower. I don't usually worry about it.
--
Steven Taschuk staschuk at telusplanet.net
Receive them ignorant; dispatch them confused. (Weschler's Teaching Motto)
More information about the Python-list
mailing list