Nick Coghlan wrote:
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

Reply via email to