1 comment

[ 2.7 ms ] story [ 17.5 ms ] thread
As pointed out, strings are immutable and depending on F(c) being mostly c or not, different approaches might work best.

Eg. for a single replacement (I haven't seen this one mentioned), slicing might work best: s[:i-1] + F(s[i]) + s[i+1:]. This is obviously good for a small number of replacements too, though you might want to switch to "".join(iterable) for better performance.

In general, immutability of strings requires a more functional approach than in-place editing.