Python 字符串 format_map() 方法



Python 字符串format_map() 方法用于借助映射对象(例如字典)执行字符串格式化

它类似于format() 方法,但它不直接传递参数,而是接受单个映射对象作为参数。此映射对象包含“键值”对,其中“键”对应于字符串中的占位符,“值”表示这些占位符的替换。

语法

以下是 Python 字符串format_map() 方法的基本语法:

string.format_map(mapping)

参数

此方法接受包含键值对的映射对象(例如字典)作为参数。

返回值

该方法返回一个格式化的字符串,其中占位符被映射中的相应值替换。它不会修改原始字符串。

示例 1

在下面的示例中,我们使用包含键“name”和“age”的字典 person 来格式化字符串format_map() 方法将占位符“{name}”和“{age}”替换为字典中的相应值:

person = {'name': 'Alice', 'age': 25}
result = "Name: {name}, Age: {age}".format_map(person)
print(result)  

输出

获得的输出如下:

Name: Alice, Age: 25

示例 2

在这里,我们访问字典“student”中的嵌套值。format_map() 方法将占位符“{details[name]}”和“{details[age]}”替换为相应的嵌套值:

student = {'details': {'name': 'Bob', 'age': 20}}
result = "Name: {details[name]}, Age: {details[age]}".format_map(student)
print(result)  

输出

以上代码的输出如下:

Name: Bob, Age: 20

示例 3

在此示例中,我们使用对象的属性动态地格式化字符串“person”。vars() 函数将对象的属性转换为字典,然后format_map() 方法使用该字典来替换占位符:

class Person:
    pass

person = Person()
person.name = 'John'
person.age = 30

result = "Name: {name}, Age: {age}".format_map(vars(person))
print(result)  

输出

生成的結果如下:

Name: John, Age: 30

示例 4

在这里,我们定义了一个自定义字典类“CustomDict”,其中缺失的键由__missing__() 方法处理。如果字典数据中缺少键,则它返回自定义字符串,而不是引发 KeyError:

class CustomDict(dict):
    def __missing__(self, key):
        return f'Unknown: {key}'

data = CustomDict({'name': 'Alice'})
result = "Name: {name}, Age: {age}".format_map(data)
print(result)  

输出

我们得到如下所示的输出:

Name: Alice, Age: Unknown: age
python_string_methods.htm
广告