Incrementing a string

John Velman velman at cox.net
Wed Sep 15 18:08:20 EDT 2004


I've used perl for a lot of 'throw away' scripts;  I like Python better in
principle, from reading about it, but it was always easier to just use
perl rather than learn python.

Now I'm writing a smallish program that I expect to keep around, so am
taking this opportunity to try to learn some Python.  I have a need for
computer generated set of simple string lables.  I don't know how many in
advance---each is produced as a result of a user action.

In perl I simply initiated
 
   $label= "a";

Then, after using it doing

    $label++;

This conveniently steps through the alphabet, then goes on to aa, ab,ac,
...

In Python I can get from a to z with a generator as so:

>>> def gen_alph():
...     for i in range(97,123):
...         yield chr(i)
...
>>> g = gen_alph()
>>> g.next()
'a'
>>> g.next()
'b'
>>> g.next()
'c'

But it looks like going beyond z to aa and so on is (relatively) complicated.

In truth, it seems unlikely that I would ever go beyond z in using my
application, and certainly not beyond zz which wouldn't be too hard to
program.  But I hate to build in limitations no matter how reasonable.

It seems like there should be a better way that I'm missing because I'm
thinking in perl, not thinking in Python.  :-)

Best,

John Velman



More information about the Python-list mailing list