Ich muss eine Zeichenfolge mit Platzhaltern für eine spätere Ersetzung verwenden, z.
"A %s B %s"
Und machen Sie daraus:
"A {0} B {1}"
Ich hatte die Idee dass:
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
Das funktioniert, aber es fühlt sich super klobig an und überhaupt nicht "idiomatisch" Python.
Wie würde eine gute, idiomatische Python-Lösung aussehen?
Aktualisierungen zur Klarstellung:
- Die resultierenden Zeichenfolgen werden in Python nicht verwendet. Ich tun die Zählernummern dort brauchen! (also
{}nicht gut genug)! - Ich muss mich nur um
%sStrings kümmern , da die Nachrichten garantiert nur verwendet werden%s(%i %füberhaupt nicht).