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
廣告