Python String format_map()

Before talking about format_map(). Let's see how str.format(**mapping) works for Python Dictionaries.

point = {'x':4,'y':-5}
print('{x} {y}'.format(**point))

Output

4 -5

Learn more on, how to format strings in Python?


The format_map(mapping) is similar to str.format(**mapping) method.

The only difference is that str.format(**mapping) copies the dict whereas str.format_map(mapping) makes a new dictionary during method call. This can be useful if you are working with a dict subclass.


The syntax of format_map() is

str.format_map(mapping)

format_map Parameter

format_map() takes a single argument mapping(dictionary).


Return Value from format_map()

format_map() formats the given string and returns it.


Example 1: How format_map() works?

point = {'x':4,'y':-5}
print('{x} {y}'.format_map(point))

point = {'x':4,'y':-5, 'z': 0}
print('{x} {y} {z}'.format_map(point))

Output

4 -5
4 -5 0

Example 2: How format_map() works with dict subclass?

class Coordinate(dict):
    def __missing__(self, key):
      return key


print('({x}, {y})'.format_map(Coordinate(x='6')))
print('({x}, {y})'.format_map(Coordinate(y='5')))
print('({x}, {y})'.format_map(Coordinate(x='6', y='5')))

Output

(6, y)
(x, 5)
(6, 5)

format_map(mapping) is more flexible than format(**mapping) as you can have missing keys.


Also Read:

Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community