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 <ros...@gmail.com> 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 Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/