Jimmy Retzlaff wrote:
The approach you are considering may be easier than you think:
filter(str.isalpha, 'The Beatles - help - 03 - Ticket to ride')
'TheBeatleshelpTickettoride'
Hmm, I think this is a case where filter is significantly clearer than the equivalent list comprehension:
Py> "".join([c for c in 'The Beatles - help - 03 - Ticket to ride' if c.isalpha(
)])
'TheBeatleshelpTickettoride'
On the other hand, filter doesn't do the same thing:
py> s = u'The Beatles - help - 03 - Ticket to ride'
py> filter(str.isalpha, s)
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
TypeError: descriptor 'isalpha' requires a 'str' object but received a 'unicode'
py> ''.join(c for c in s if c.isalpha())
u'TheBeatleshelpTickettoride'
Ideally, you could use something like basestring.isalpha and have it work for both str and unicode, but no such luck. =)
STeVe -- http://mail.python.org/mailman/listinfo/python-list