Tengo que tomar una cadena que contenga marcadores de posición para una sustitución posterior, como:
"A %s B %s"
Y convertir eso en:
"A {0} B {1}"
Se me ocurrio:
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
Eso funciona, pero se siente súper torpe, y en absoluto pitón "idiomático".
¿Cómo sería una solución de pitón bien idiomática?
Actualizaciones para aclaraciones:
- Las cadenas resultantes no se utilizan en Python. Yo hago necesitar los números del contador de allí! (¡entonces
{}no es lo suficientemente bueno!) - Solo necesito preocuparme por las
%scadenas, ya que los mensajes están garantizados para usar solo%s(sin ningún%i %ftipo)