Michael Spencer <[EMAIL PROTECTED]> wrote: > Olivier Langlois wrote: > > Hi Michael! > > > > Your suggestion is fantastic and is doing exactly what I was looking > > for! Thank you very much. > > There is something that I'm wondering though. Why is the solution you > > proposed wouldn't work with Unicode strings? > > > Simply, that str.translate with two arguments isn't implemented for > unicode strings. I don't know the underlying reason, or how hard it would > be to change.
A Unicode's string translate takes a dict argument -- you delete characters by mapping their ord(...) to None. For example: >>> u'banana'.translate({ord('a'):None}) u'bnn' That is in fact much handier, when all you want to do is deleting some characters, than using string.maketrans to create a "null" translation table and passing as the 2nd argument the string of chars to delete. With unicode .translate, you can also translate a character into a STRING...: >>> u'banana'.translate({ord('a'):u'ay'}) u'baynaynay' ...which is simply impossible with plainstring's .translate. Alex -- http://mail.python.org/mailman/listinfo/python-list