代码之家  ›  专栏  ›  技术社区  ›  Martin Thoma

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

  •  1
  • Martin Thoma  · 技术社区  · 6 年前

    在这种情况下,很容易调整格式字符串,但很难调整格式的参数:

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

    对于数字,您可以使用 {:1.23f} .

    对于日期,可以使用 {:%Y-%m-%d} .

    我想对iterables和字典有更多的控制。例如,我可以想象 '{:iterable.42}' 访问iterable和 {:dict.b} 使用键访问元素 b .

    这样的东西存在吗?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Julien Briand    6 年前

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

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

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