Метод format_map () похож на str.format (** mapping), за исключением того, что str.format (** mapping) создает новый словарь, а str.format_map (mapping) - нет.
Прежде чем говорить о format_map()
. Давайте посмотрим, как str.format(**mapping)
работают словари Python.
point = ('x':4,'y':-5) print('(x) (y)'.format(**point))
Вывод
4-5
Узнайте больше о том, как форматировать строки в Python?
format_map(mapping)
Аналогичен str.format(**mapping)
методу.
Единственное отличие состоит в том, что он str.format(**mapping)
копирует dict, а str.format_map(mapping)
при вызове метода создает новый словарь. Это может быть полезно, если вы работаете с dict
подклассом.
Синтаксис format_map()
:
str.format_map (отображение)
format_map Параметр
format_map()
принимает единственный аргумент mapping(dictionary)
.
Возвращаемое значение из format_map ()
format_map()
форматирует заданную строку и возвращает ее.
Пример 1: Как работает format_map ()?
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))
Вывод
4-5 4-5 0
Пример 2: Как format_map () работает с подклассом dict?
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')))
Вывод
(6, у) (х, 5) (6, 5)
format_map(mapping)
является более гибким, чем format(**mapping)
если бы вы могли потерять ключи.