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)
Ответ 3
Вы также можете использовать следующий код:
dic = { 'fruit': 'apple', 'place':'table' }
print "I have one %(fruit)s on the %(place)s." % dic