Вы можете указать позиции, и str.format
будет знать, какие аргументы использовать:
a, b, c = 1, 2, 3
string = "This is {0}, {1}, and {2}. Or, in reverse: {2}, {1}, {0}"
string.format(a, b, c)
# 'This is 1, 2, and 3. Or, in reverse: 3, 2, 1'
Вы также можете передавать аргументы ключевых слов или распаковывать словарь:
a, b, c = 1, 2, 3
string = """This is {versionP}, {versionS}, and {versionT}.
Or, in reverse: {versionT}, {versionS}, {versionP}"""
# string.format(versionP=a, versionS=b, versionT=c)
string.format(**{'versionP': a, 'versionS': b, 'versionT': c})
# This is 1, 2, and 3.
# Or, in reverse: 3, 2, 1