On Mon, Oct 24, 2016 at 05:37:29PM -0700, Chris Barker - NOAA Federal wrote:
> > On Oct 24, 2016, at 3:54 PM, Chris Angelico <[email protected]> wrote:
>
> > . But in any case,
> > this is a question you can't even ask until replace() accepts multiple
> > arguments. Hence I'm +1 on the notion of simultaneous replacements
> > being supported.
>
> Agreed -- there are a lot of edge cases to work out, and there is not
> one way to define the API, but if folks think it's a good idea, we can
> hash those out.
>
> If anyone decides to take this on, be prepared for a lot of bike shedding!
Regarding prior art, I think that the PHP ``strtr`` function is a good
example:
http://php.net/manual/en/function.strtr.php
Especially with regards to the ``replace_pairs`` argument:
If given two arguments, the second should be an array in the form
array('from' => 'to', ...). The return value is a string where all
the occurrences of the array keys have been replaced by the
corresponding values. The longest keys will be tried first. Once a
substring has been replaced, its new value will not be searched
again.
This is one I have sometimes used when writing a mini template language,
where `{{ username }}` had to be replaced. In contrast to other ways,
``strtr`` gives a one-pass garantuee, which means that it was safe
against hypothetical attacks where one would add a template-string to
one of the values.
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/