Muszę wziąć ciąg zawierający symbole zastępcze do późniejszego podstawienia, na przykład:
"A %s B %s"
I zamień to w:
"A {0} B {1}"
Wymyśliłem:
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
To działa, ale wydaje się super niezręczne i wcale nie jest „idiomatycznym” pytonem.
Jak wyglądałoby dobrze idiomatyczne rozwiązanie python?
Aktualizacje w celu wyjaśnienia:
- wynikowe ciągi nie są używane w Pythonie. I zrobić potrzebne numery liczników w tam! (więc
{}nie jest wystarczająco dobry)! - Muszę tylko dbać o
%sciągi, ponieważ gwarantuje się, że wiadomości będą używać tylko%s(żadnych%i %f)