Selectively replace multiple instances of a character within a string: Difference between revisions

Content added Content deleted
Line 529: Line 529:
def nthInstanceReplaced(ruleMap):
def nthInstanceReplaced(ruleMap):
def go(a, c):
def go(a, c):
i = a.get(c, 0)
if c in ruleMap:
deltas = ruleMap.get(c, [])
i = a.get(c, 0)
return (
deltas = ruleMap.get(c)
dict(a, **{c: 1 + i}) if c in ruleMap else a,
return (
deltas[i] or c if i < len(deltas) else c
dict(a, **{c: 1 + i}),
deltas[i] or c if i < len(deltas) else c
)
)
else:
return a, c


return lambda s: ''.join(
return lambda s: ''.join(