Существует ''.format_map()
функция начиная с Python 3.2:
test = "I have one {fruit} on the {place}.".format_map(dic)
Преимущество заключается в том, что он принимает любое сопоставление, например, класс с методом __getitem__
, который генерирует значения динамически, или collections.defaultdict
, который позволяет использовать несуществующие ключи.
Эмулируется на более старых версиях:
from string import Formatter
test = Formatter().vformat("I have one {fruit} on the {place}.", (), dic)