[Python-ideas] strtr? (was startsin ?

Jan Kaliszewski zuo at chopin.edu.pl
Sat Oct 1 13:28:48 CEST 2011


INADA Naoki dixit (2011-10-01, 01:18):

> I think `strtr`_ in php is also very useful when escaping something.
> 
> _ strtr: http://jp.php.net/manual/en/function.strtr.php
> 
> For example:
> 
> .. code-block:: php
> 
>     php> = strtr("foo\\\"bar\\'baz\\\\", array("\\\\"=>"\\",
> '\\"'=>'"', "\\'"=>"'"));
>     "foo\"bar'baz\\"
> 
> .. code-block:: python
> 
>     In [1]: "foo\\\"bar\\'baz\\\\".replace('\\"', '"').replace("\\'",
> "'").replace('\\\\', '\\')
>     Out[1]: 'foo"bar\'baz\\'
> 
> In Python, lookup of 'replace' method occurs many times and temporary
> strings is created many times too.
> It makes Python slower than php.

For this particular case I'd use .decode('string_escape') for Py2.x str
and .decode('unicode_escape') for Py2.x unicode strings.

And in Py3.x I'd use... Er... In Py3.x the planned mechanism of
str.transform()/untransform() (here: untransform('unicode_escape'))
would be ideal -- but it has not been re-introduced yet:
http://bugs.python.org/issue7475 -- and IMHO it should be as a clear way
to do such transformations.

Cheers.
*j




More information about the Python-ideas mailing list