str.format_map(mapping)
时间: 2024-05-13 21:18:49 浏览: 157
stl_map.rar_STL mapping
`str.format_map(mapping)` 方法是用于将字符串中的占位符(如 `{}`)替换为映射中对应键的值。它与 `str.format()` 方法类似,但是它接受一个映射对象作为参数,而不是一系列位置参数。
参数 `mapping` 是一个映射对象,可以是字典或其他实现了映射协议的对象。例如,可以使用一个字典来传递参数和值:
```python
params = {'name': 'Alice', 'age': 30}
greeting = 'My name is {name} and I am {age} years old.'.format_map(params)
print(greeting) # 输出: "My name is Alice and I am 30 years old."
```
在上面的示例中,`format_map()` 方法将字符串中的 `{name}` 和 `{age}` 占位符分别替换为字典 `params` 中对应的键值。如果在映射中找不到某个占位符对应的键,则会引发 `KeyError` 异常。
需要注意的是,`format_map()` 方法与 `format()` 方法不同,它不支持在占位符中指定格式说明符。如果需要使用格式说明符,则需要先使用 `str.format()` 方法构建一个格式化字符串,然后再使用 `format_map()` 方法进行替换。例如:
```python
params = {'price': 5.99, 'qty': 3}
item = 'Apple'
order = '{qty} {item}s cost ${price:.2f}.'.format(item=item, **params)
print(order) # 输出: "3 Apples cost $5.99."
```
在上面的示例中,`format()` 方法将字符串中的占位符 `{item}` 和 `{qty}` 分别替换为变量 `item` 和字典 `params` 中对应的键值,同时使用了格式说明符 `:.2f` 来指定价格保留小数点后两位。然后,`format_map()` 方法将格式化字符串中的占位符替换为映射中对应键的值。
阅读全文