Peter Otten wrote:
Terry Reedy wrote:

Cédric Lucantis wrote:

I don't see any string method to do that
 >>> 'abcde'.translate(str.maketrans('','','bcd'))
'ae'

I do not claim this to be better than all the other methods,
but this pair can also translate while deleting, which others cannot.

You should mention that you are using Python 3.0 ;) The 2.5 equivalent would be

u"abcde".translate(dict.fromkeys(map(ord, u"bcd")))
u'ae'

Sorry. I did not realize that the maketrans function had not then been moved from the string module to the str class object, unlike nearly all other functions from string, including the translate function. I also misremembered that maketrans did not have the new third delete param. What I did do once long ago was something like

>>> import string
>>> a = 'abcde'.translate(string.maketrans('bd','**'))
>>> a.replace('*','')
'ace'

which is not very nice.

tjr

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to