list to tuple conversion

sc nospam at spamhaters.com
Wed Oct 1 09:51:33 CEST 2008


clp:

Thanx to a recent thread I am able to have a print string
with a variable number of formatters -- what I now lack for
the creation of an elegant print statement is a tuple -- 
following is the code, the last line of which does not work:

<code>
#!/usr/bin/python
import xml.sax
import eaddyhandler
parser = xml.sax.make_parser()
h = eaddyhandler.EAddyHandler()
parser.setContentHandler(h)
parser.parse(".ea.xml")
for i in range(1, len(h.m)):
    k = "r%06d" % i
    col = len(h.m[k])
    if col > 2 and h.m[k][0] > " ":
        print (col * '%-30s') % h.m[k]
</code>

What's going on is I have an oocalc spreadsheet for 
e-addresses -- column 1 has the name, and then I keep 
adding e-addresses for ppl when they get new ones, as 
successive entries on their row, meaning each row has
a variable number of e-address columns.  I have an xml
extractor that runs before this script using 
odf.opendocument, which works famously.

My class, EAddyHandler, also works, and builds its dictionary 
of rows in 'm', forgive me, no flames please, I needed a 
short name for the dictionary I have to type it so many times.
The key to 'm' is an 'r' + row number, so I can get
stuff out of it and it's still in the right order, fun
with dictionaries.

What I was hoping for was something that could vary the
source for the print statement as cleanly as the 'col'
multiplication creates the print format, but the list,
'h.m[k]' is not a tuple, it's a list, and I'm just not 
quite where I am trying to get with this.

If there were a builtin function that took a list and 
returned a tuple, I'd be there, but if there is such a
thing I need someone to point me at it.  I can't help
thinking I am missing some obvious construct, and I'll
be advised to go reread the tutorial, but I'm not there,
and if you can take pity on me and point me there, I'll
be your friend for life.  Well -- I'll be grateful...

TIA,

Scott




More information about the Python-list mailing list