Format strings may contain named placeholders that are interpolated using keyword arguments to format.

Using a dictionary (Python 2.x)

>>> data = {'first': 'Hodor', 'last': 'Hodor!'}
>>> '{first} {last}'.format(**data)
'Hodor Hodor!'

Using a dictionary (Python 3.2+)

>>> '{first} {last}'.format_map(data)
'Hodor Hodor!'

[str.format_map](<https://docs.python.org/3/library/stdtypes.html?highlight=format_map#str.format_map>) allows to use dictionaries without having to unpack them first. Also the class of data (which might be a custom type) is used instead of a newly filled dict.

Without a dictionary:

>>> '{first} {last}'.format(first='Hodor', last='Hodor!')
'Hodor Hodor!'