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

时间:2019-01-22 13:58:19

标签: python string-formatting

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

'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访问该元素。

是否存在类似的东西?

1 个答案:

答案 0 :(得分:4)

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

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

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