'string.format' 是否允许对可迭代对象/字典进行更多控制?

Does 'string.format' allow more control over iterables / dictionaries?

我处于一种很容易调整格式字符串,但很难调整格式参数的情况:

'I can influence this'.format(foo={'a': 'no', 'b': 'control'},
                              bar=['no', 'control', 'either'])

对于数字,您可以使用 {:1.23f} 格式。

对于日期,您可以使用 {:%Y-%m-%d} 格式。

我想对可迭代对象和字典有更多的控制。例如,我可以想象 '{:iterable.42}' 访问可迭代对象的第 43 个元素,{:dict.b} 访问具有键 b.

的元素

有这样的东西吗?

您可以在格式化字符串时访问函数格式中指定的关键字参数:

'{foo[a]} {bar[1]}'.format(foo={'a': 'no', 'b': 'control'},
                              bar=['no', 'control', 'either'])

python 中格式化字符串的有用来源: https://pyformat.info/