Je dois prendre une chaîne contenant des espaces réservés pour une substitution ultérieure, comme:
"A %s B %s"
Et transformez cela en:
"A {0} B {1}"
Je suis venu avec:
def _fix_substitution_parms(raw_message):
rv = raw_message
counter = 0
while '%s' in rv:
rv = rv.replace('%s', '{' + str(counter) + '}', 1)
counter = counter + 1
return rv
Cela fonctionne, mais il se sent super maladroit, et pas du tout python "idiomatique".
À quoi ressemblerait une solution de python idiomatique?
Mises à jour pour clarification:
- les chaînes résultantes ne sont pas utilisées dans python. Je fais besoin des numéros de compteur là - dedans! (donc ça
{}ne suffit pas)! - J'ai seulement besoin de me soucier des
%schaînes, car les messages sont garantis pour n'utiliser que%s(pas du%i %ftout)