[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