stripping punctuation from tuples

Alex Martelli aleaxit at yahoo.com
Mon Mar 19 07:35:37 EST 2001


"Louis Luangkesorn" <lluang at northwestern.edu> wrote in message
news:3AB57F0C.594CF3E9 at northwestern.edu...
> How do you strip the punctuation from tuples?  In particular, say I have
> a tuple a[10] (which happened to come from a not very well designed
> database)
>
> >>> a[10]
> ('Alan Tsang',)

Note that, here, there is in fact no punctuation in the tuple a[10].
The parentheses and comma[s] are inserted by 'repr' (which is being
implicitly called by the interactive interpreter to show you the
results of expressions you type interactively).


> How do I get something to say 'Alan Tsang'  with out the parens or the
> ','

a[10][0], the first and only element of the tuple, has this value.


> Or, what I'm really trying to do is make this so
> >>>b = breakname(a[10])
> >>>b[0], b[1]
>
> 'Alan','Tsang'

If you know for sure that the tuple has exactly one item (or you
know it has at least one, and only care about the first one),

def breakname(atup):
    return atup[0].split()

To work for any number of items in the tuple, e.g.:

def breaknames(atup):
    return [ x for item in atup for x in item.split() ]

Of course, if you use repr (implicitly or explicitly) to view
the results of either function, you will see punctuation again,
since repr will insert it for clarity:-).


Alex







More information about the Python-list mailing list