Я должен взять строку, содержащую заполнители для последующей замены, например:
"A %s B %s"
И превратить это в:
"A {0} B {1}"
Я придумал:
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
Это работает, но это кажется очень неуклюжим, и вовсе не «идиоматическим» питоном.
Как бы хорошо, идиоматическое решение Python выглядело?
Обновления для уточнения:
- Результирующие строки не используются в Python. Я делать нужно число счетчиков в там! (так
{}не достаточно хорошо)! - Мне нужно заботиться только о
%sстроках, так как сообщения гарантированно использовать только%s(ни в коем случае%i %f)